天天看點

java實作小豆聊天機器人接口

package com.iask.webchat.chatmachine;

import java.net.URLEncoder;

import org.apache.http.HttpEntity;

import org.apache.http.HttpResponse;

import org.apache.http.HttpStatus;

import org.apache.http.client.HttpClient;

import org.apache.http.client.methods.HttpPost;

import org.apache.http.entity.StringEntity;

import org.apache.http.impl.client.DefaultHttpClient;

import org.apache.http.params.CoreConnectionPNames;

import org.apache.http.util.EntityUtils;

public class XiaoDouMachine {

    public static void main(String[] args) {

        try {

            System.out.println(getXiaoDouMsg("哈哈"));

        } catch (Exception e) {

            e.printStackTrace();

        }

    }

    public static String getXiaoDouMsg(String msg) {

        // 讀取結果網頁

        StringBuffer sbRes = new StringBuffer();

        HttpClient httpClient = new DefaultHttpClient();// 建立httpClient對象

        try {

            // 請求逾時

            httpClient.getParams().setParameter(

                    CoreConnectionPNames.CONNECTION_TIMEOUT, 20000);

            // 讀取逾時

            httpClient.getParams().setParameter(

                    CoreConnectionPNames.SO_TIMEOUT, 20000);

            HttpPost httppost = new HttpPost(

                    "http://xiao.douqq.com/bot/chat.php");

            String parmaStr = "chat=" + URLEncoder.encode(msg, "UTF-8");

            // System.out.println(parmaStr);

            StringEntity reqEntity = new StringEntity(parmaStr);

            reqEntity.setContentType("application/x-www-form-urlencoded");

            httppost.setHeader("User-Agent",

                    "Mozilla/4.0 (compatible; MSIE 5.0; Windows NT; DigExt)");

            httppost.setHeader("Referer", "http://xiao.douqq.com/");

            httppost.setEntity(reqEntity);

            HttpResponse responce = httpClient.execute(httppost);// 得到responce對象

            int resStatu = responce.getStatusLine().getStatusCode();// 傳回碼

            if (resStatu == HttpStatus.SC_OK) {// 200正常 其他就不對

                // 獲得相應實體

                HttpEntity entity = responce.getEntity();

                String html = new String(EntityUtils.toString(entity).getBytes(

                        "ISO-8859-1"), "UTF-8");// 獲得html源代碼

                sbRes.append(html.trim());

            }

        } catch (Exception e) {

            System.out.println("小豆機器人接口調用出錯!" + e.getMessage());

            // 調用小九接口

            return XiaojiuMachine.getXiaojiuMsg(msg);

        } finally {

            httpClient.getConnectionManager().shutdown();

        }

        // 調用小九接口

        if (sbRes.toString().equals("") || sbRes.toString().equals("幹嘛")) {

            return XiaojiuMachine.getXiaojiuMsg(msg);

        }

        String finalRes = removeNews(sbRes.toString());

        System.out.println("小豆機器人回複:" + finalRes);

        return finalRes;

    }

    public static String removeNews(String sendMsgs) {

        if (sendMsgs.indexOf("xiaodouqqcom") != -1) {

            sendMsgs = "倫家不懂官人的話了啦~";

        } else if (sendMsgs.indexOf("simsimi2") != -1) {

            sendMsgs = "倫家不懂官人的話了啦~";

        } else if (sendMsgs.indexOf("douqq") != -1) {

            sendMsgs = "倫家不懂官人的話了啦~";

        }

        sendMsgs = sendMsgs.replaceAll("傻逼", "sb").replaceAll("小九", "毛小驢")

                .replaceAll("小豆", "毛小驢").replaceAll("小賤豆", "毛小驢")

                .replaceAll("小賤", "毛小驢");

        return sendMsgs;

    }

}

繼續閱讀