用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实现Simsimi小黄鸡接口的更多相关文章
- Simsimi 小黄鸡机器人最新无限制接口api simsimi机器人接口api 微信公众号
一.什么是Simsimi? simsimi公司是提供智能服务,其中一个服务是simsimi聊天机器人服务,每天有超过百万的用户聊天,国内最大的搜索引擎——百度的产品siri使用的就是simsimi提供 ...
- PIGCMS 关闭聊天机器人(小黄鸡)
无脑操作举例 1.找到 WeixinAction.class.php 文件,路径: 你的版本\PigCms\Lib\Action\Home 2.查询 function chat ,在 chat() 函 ...
- C# Winfrom小黄鸡功能调用
最近研究微信公众平台,搭建了一个微信聊天机器人,调用小黄鸡的公众接口,实现在线和小黄鸡聊天的功能. 接口调用不是很麻烦,不过是php版本,所以研究了一下C#的功能模块, Winfrom版 后台界面代码 ...
- 小黄鸡机器人和小I机器人的调用
<?php //---------------------------------聊天小机器人类---------------------------------------------- ...
- qt调用simsimi api实现小黄鸡
项目地址:https://github.com/racaljk/xiaojianji 好吧我把它命名为小贱鸡.,下面说一说他的实现. 由于官方的simsimi api需要收费,免费试用版有各种限制,所 ...
- java实现小九机器人接口
package com.iask.webchat.chatmachine; import java.net.URLEncoder; import org.apache.http.HttpEntity; ...
- Java生鲜电商平台-API接口设计之token、timestamp、sign 具体架构与实现(APP/小程序,传输安全)
Java生鲜电商平台-API接口设计之token.timestamp.sign 具体设计与实现 说明:在实际的业务中,难免会跟第三方系统进行数据的交互与传递,那么如何保证数据在传输过程中的安全呢(防窃 ...
- 菜鸡的Java笔记 第三十五 接口定义增强
接口定义增强 在java从一开始到现在接口之中的核心组成部分:抽象方法与全局常量,但是随着技术的不断发展,用户在使用过程之中发现了有一些问题 如果说现在有一个接口经过了长年 ...
- java基础知识小总结【转】
java基础知识小总结 在一个独立的原始程序里,只能有一个 public 类,却可以有许多 non-public 类.此外,若是在一个 Java 程序中没有一个类是 public,那么该 Java 程 ...
随机推荐
- [Linux]三种方案在Windows系统下安装ubuntu双系统(转)
在学习linux的过程中,ubuntu无疑是初学者的最佳选择. 下面来列举给Windows系统安装ubuntu双系统的三种方法. 一.虚拟机安装(不推荐) 使用工具:Vmware 如果不是因为迫不得已 ...
- JAVA小项目之摇奖机
功能: 点击”摇杆“开始: 两种结束滚动方式,A:点击”摇杆“ B:分别点击 对应结果框的按钮: 实现最后减速停下来效果,模拟真实摇奖机. 知识点:A.线程的控制,B.图片轮播原理 效果图: 窗口 ...
- xxx is not in the sudoers file. This incident will be reported的解决方法
1>.进入超级用户模式.也就是输入"su -",系统会让你输入超级用户密码,输入密码后就进入了超级用户模式.(当然,你也可以直接用root用户登录,因为红旗安装过后默认的登录 ...
- 使用三层交换机的ACL实现不同vlan间的隔离
使用三层交换机的ACL实现不同vlan间的隔离 建立三个vlan vlan10 vlan20 vlan30 www.2cto.com PC1 PC3属于vlan10 PC2 PC4属于v ...
- Win8节省C盘空间攻略
问题分析: 1.系统页面文件(虚拟内存)占用空间 2.自动更新的缓存文件 3.系统保护的备份文件(系统还原用的) 4.休眠文件 5.索引文件 6.桌面文件 解决办法: 1.机器是8G内存,完全不需要虚 ...
- iOS 网络与多线程--8.百度地图的使用(调用系统浏览器)
通过调用设备自带的浏览器,打开百度地图 // 1.定义一个方法,用来打开谷歌地图的功能 -(IBAction)openMaps { // 2.定义一个字符串,作为百度地图的当前地理位置 废弃 NSSt ...
- 洛谷 P1093 奖学金
P1093 奖学金 题目描述 某小学最近得到了一笔赞助,打算拿出其中一部分为学习成绩优秀的前5名学生发奖学金.期末,每个学生都有3门课的成绩:语文.数学.英语.先按总分从高到低排序,如果两个同学总分相 ...
- 若后台的Activity被系统回收...
你后台的Activity被系统回收怎么办?如果后台的Activity由于某种原因被系统回收了,如何在被系统回收之前保存当前状态? 除了在栈顶的Activity,其他的Activity都有可能在内存不足 ...
- Redis同步(主从复制)
目录1.Replication的工作原理2.如何配置Redis主从复制3.应用示例 1.Replication的工作原理在Slave启动并连接到Master之后,它将主动发送一条SYNC命令.此后Ma ...
- Core开发-后台任务利器Hangfire使用
Core开发-后台任务利器Hangfire使用 ASP.NET Core开发系列之后台任务利器Hangfire 使用. Hangfire 是一款强大的.NET开源后台任务利器,无需Windows服务/ ...