用java實現Simsimi小黃雞接口

package com.iask.webchat.chatmachine; 

import java.io.BufferedReader; 
import java.io.InputStream; 
import java.io.InputStreamReader; 
import java.io.OutputStreamWriter; 
import java.net.HttpURLConnection; 
import java.net.URL; 
import java.net.URLEncoder; 

/** 
 * 小黃雞機器人 
 */ 
public class SimsimiTools { 

    public static void main(String[] args) { 
        try { 
            System.out.println(getSimsimiContentByNiuren("哈哈")); 
        } catch (Exception e) { 
            e.printStackTrace(); 
        } 
    } 

    /** 
     * 小黃雞機器人 
     * 
     * @author ghma 
     */ 
    public static String getSimsimiContentByNiuren(String params) { 
        StringBuffer bufferRes = new StringBuffer(); 
        try { 
            URL realUrl = new URL( 
                    "http://www.niurenqushi.com/app/simsimi/ajax.aspx"); 
            HttpURLConnection conn = (HttpURLConnection) realUrl 
                    .openConnection(); 
            // 鏈接超時 
            conn.setConnectTimeout(25000); 
            // 讀取超時 --服務器響應比較慢,增大時間 
            conn.setReadTimeout(25000); 

            HttpURLConnection.setFollowRedirects(true); 
            // 請求方式 
            conn.setRequestMethod("POST"); 
            conn.setDoOutput(true); 
            conn.setDoInput(true); 
            conn.setRequestProperty("User-Agent", 
                    "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:21.0) Gecko/20100101 Firefox/21.0"); 
            conn.setRequestProperty("Accept", "*/*"); 
            conn.setRequestProperty("Referer", 
                    "http://www.niurenqushi.com/app/simsimi/"); 
            conn.connect(); 
            // 獲取URLConnection對象對應的輸出流 
            OutputStreamWriter out = new OutputStreamWriter( 
                    conn.getOutputStream()); 
            // 發送請求參數 
            out.write("txt=" + URLEncoder.encode(params, "UTF-8")); 
            out.flush(); 
            out.close(); 

            InputStream in = conn.getInputStream(); 
            BufferedReader read = new BufferedReader(new InputStreamReader(in, 
                    "UTF-8")); 
            String valueString = null; 
            while ((valueString = read.readLine()) != null) { 
                bufferRes.append(valueString); 
            } 
            in.close(); 
            if (conn != null) { 
                // 關閉鏈接 
                conn.disconnect(); 
            } 
        } catch (Exception e) { 
            System.out.println("小黃雞接口調用出錯!" + e.getMessage()); 
            return XiaoDouMachine.getXiaoDouMsg(params); 
        } 

        if (bufferRes.toString().equals("幹嗎")) { 
            return XiaoDouMachine.getXiaoDouMsg(params); 
        } 

        String finalRes = removeNews(bufferRes.toString()); 
        System.out.println("小黃雞機器人回覆:" + finalRes); 
        return finalRes; 
    } 

    /** 
     * 屏蔽當前接口中的廣告 
     * 
     * @return 
     */ 
    public static String removeNews(String sendMsgs) { 
        // 去除廣告 
        if (sendMsgs.indexOf("simsimi2") != -1) { 
            sendMsgs = "偶是毛小驢,女,還木有男朋友,歡迎南華學子調戲   O(∩_∩)O"; 
        } else if (sendMsgs.indexOf("Database") != -1 
                || sendMsgs.indexOf("Failed") != -1) { 
            int random = (int) (Math.random() * 5); 
            switch (random) { 
            case 1: 
                sendMsgs = "嗯"; 
                break; 
            case 2: 
                sendMsgs = "聊天其它的吧"; 
                break; 
            case 3: 
                sendMsgs = "嗯哼"; 
                break; 
            case 4: 
                sendMsgs = "哎呀"; 
                break; 
            case 5: 
                sendMsgs = "額"; 
                break; 
            default: 
                sendMsgs = "嗯"; 
                break; 
            } 
        } else if (sendMsgs.indexOf("Unauthorized access") != -1) { 
            sendMsgs = "我怎麼聽不懂你說的什麼意思呀[大哭]。我們能換個話題嗎!"; 
        } else if (sendMsgs.indexOf("你能夠教我回答") != -1) { 
            sendMsgs = "好吧"; 
        } 
        // 替換部份內容 
        sendMsgs = sendMsgs.replaceAll("傻逼", "sb"); 
        sendMsgs = sendMsgs.replaceAll("小九", "毛小驢"); 
        // sendMsgs = sendMsgs.replaceAll("小豆", "小賤賤"); 
        sendMsgs = sendMsgs 
                .replaceAll( 
                        "小豆機器人網頁版地址:http://xiao.douqq.com QQ個性網http://www.xiugexing.com", 
                        "倫家不懂官人的話了啦~"); 
        sendMsgs = sendMsgs.replaceAll("小豆", "毛小驢"); 
        sendMsgs = sendMsgs.replaceAll("人家", "倫家"); 
        sendMsgs = sendMsgs.replaceAll("林晨愛你QQ個性網http://www.xiugexing.com", 
                "倫家不懂官人的話了啦~"); 
        return sendMsgs; 
    } 
java

相關文章
相關標籤/搜索