用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; 
    } 

posted on 2013-09-16 11:09  梦想的尾巴  阅读(183)  评论(0编辑  收藏  举报

导航