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实现Simsimi小黄鸡接口的更多相关文章

  1. Simsimi 小黄鸡机器人最新无限制接口api simsimi机器人接口api 微信公众号

    一.什么是Simsimi? simsimi公司是提供智能服务,其中一个服务是simsimi聊天机器人服务,每天有超过百万的用户聊天,国内最大的搜索引擎——百度的产品siri使用的就是simsimi提供 ...

  2. PIGCMS 关闭聊天机器人(小黄鸡)

    无脑操作举例 1.找到 WeixinAction.class.php 文件,路径: 你的版本\PigCms\Lib\Action\Home 2.查询 function chat ,在 chat() 函 ...

  3. C# Winfrom小黄鸡功能调用

    最近研究微信公众平台,搭建了一个微信聊天机器人,调用小黄鸡的公众接口,实现在线和小黄鸡聊天的功能. 接口调用不是很麻烦,不过是php版本,所以研究了一下C#的功能模块, Winfrom版 后台界面代码 ...

  4. 小黄鸡机器人和小I机器人的调用

    <?php    //---------------------------------聊天小机器人类---------------------------------------------- ...

  5. qt调用simsimi api实现小黄鸡

    项目地址:https://github.com/racaljk/xiaojianji 好吧我把它命名为小贱鸡.,下面说一说他的实现. 由于官方的simsimi api需要收费,免费试用版有各种限制,所 ...

  6. java实现小九机器人接口

    package com.iask.webchat.chatmachine; import java.net.URLEncoder; import org.apache.http.HttpEntity; ...

  7. Java生鲜电商平台-API接口设计之token、timestamp、sign 具体架构与实现(APP/小程序,传输安全)

    Java生鲜电商平台-API接口设计之token.timestamp.sign 具体设计与实现 说明:在实际的业务中,难免会跟第三方系统进行数据的交互与传递,那么如何保证数据在传输过程中的安全呢(防窃 ...

  8. 菜鸡的Java笔记 第三十五 接口定义增强

    接口定义增强        在java从一开始到现在接口之中的核心组成部分:抽象方法与全局常量,但是随着技术的不断发展,用户在使用过程之中发现了有一些问题        如果说现在有一个接口经过了长年 ...

  9. java基础知识小总结【转】

    java基础知识小总结 在一个独立的原始程序里,只能有一个 public 类,却可以有许多 non-public 类.此外,若是在一个 Java 程序中没有一个类是 public,那么该 Java 程 ...

随机推荐

  1. (转)\r \r\n \t 的区别

    小风吹雪 \r \r\n \t 的区别 http://www.360doc.com/content/12/0530/15/16538_214756101.shtml \n 软回车:       在Wi ...

  2. MySQL数据库my.cnf配置文件注释详解

    我们知道,在MySQL数据库安装完成后,要对my.cnf配置文件进行适当的修改才能充分利用MySQL数据库的功能.但是对于初学者来说,修改my.cnf配置文件似乎是一个比较难的过程.为了解决这个问题, ...

  3. Calling a C++ dll with unsigned char* parameters

    unsigned char*  等价 BYTE* 例1: C++: int __stdcall LIVESCAN_GetFPRawData(int nChannel, unsigned char *p ...

  4. IOS创建开源库步骤,提交cocoa pods官网,别人可以使用

    1.打开终端进入某个目录执行  pod lib create BMBlinkButton,按命令步骤执行. 2.目录结构 3.修改BMBlinkButton.podspec文件 4.进入Example ...

  5. Eclipse换背景

    http://tieba.baidu.com/p/2128040173 1.打开Eclipse的Help->Eclipse Marketplace 2.在Find里搜索Eclipse Color ...

  6. Qt 数据库创建表失败原因之数据库关键字

    本人数据库新手,在创建表时出现问题,最后经查证,找出问题所在.下面的程序是部分节选,在创建数据库表的时候,起先使用的L24的CreateDB,经测试,一直输出 Create testResult Fa ...

  7. JavaScript escape() 函数

    JavaScript escape() 函数 JavaScript 全局对象 定义和用法 escape() 函数可对字符串进行编码,这样就可以在所有的计算机上读取该字符串. 语法 escape(str ...

  8. VS Code 项目编译

    编译运行vs code源码 如果我们想本地运行 vs code 需要安装一些必要的库. 我们需要安装 'Node.JS' . 这里需要注意的是,最低版本要求是'5.1.0'. 还需要安装 'Pytho ...

  9. ECSTORE2.0 定时任务配置

    今天在配置ecstore2.0的定时任务时候,发现ECOS后台每30秒通过JS调用 http://localhost/ecstore-bugfix/index.php/shopadmin/index. ...

  10. 命令passwd报错因inode节点处理记录

    命令passwd报错因inode节点处理记录故障现象:1.修改密码时报错 passwd: Authentication token manipulation error2.添加用户报错:unable ...