在网上找的聊天都是我问一句,下一句就接不上来了,就连成语接龙都玩不了,后来发现问题就出在userid这个参数上面,以下就是能够进行连续聊天的代码,懒得写界面,聊天字符串每执行一次就自己改一下,懒得写input,与网上大多数不同的是我在url中添加了一个userid参数,重点就是url这个字符串,其他的一模一样,应该可以自己添加groupID和userIdName。代码如下。
userid参数是自己随便写的,apiKey需要你自己去申请,自行百度“图灵机器人的申请”等词条,或图灵机器人官网,如果只是实验可以用我这个,但是最好自己去申请一个,免费的哈。
package tulingTest;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLEncoder;
public class UrlFinish {
public static void main(String[] args) throws IOException {
String question = "重庆市大学城附近的酒店";
String info = URLEncoder.encode(question, "utf-8");
String apiKey = "b6cc890990a04f23a6c6c71a4c36fb4c";
String userId = "123456";
String url = "http://www.tuling123.com/openapi/api?key="+apiKey
+"&info="+info+"&userid="+userId;
URL getUrl = new URL(url);
HttpURLConnection connection = (HttpURLConnection)getUrl.openConnection();
connection.connect();
// 获得输入流,并使用Reader读取
BufferedReader reader = new BufferedReader(
new InputStreamReader(connection.getInputStream(),"utf-8"));
StringBuffer stringBuffer = new StringBuffer();
String line = "";
while((line = reader.readLine()) != null){
stringBuffer.append(line);
}
// 断开reader
reader.close();
// 断开链接
connection.disconnect();
System.out.println(stringBuffer);
responseAnalysis(stringBuffer);
}
private static void responseAnalysis(StringBuffer str){
String string = str.toString();
// 返回的是索引
int textBegin = string.indexOf("\"text");
int urlBegin = string.indexOf("\"url");
int codeBegin = string.indexOf("\"code");
System.out.println(textBegin);
System.out.println(urlBegin);
System.out.println(codeBegin);
if(textBegin != -1)
System.out.println(string.substring(textBegin, urlBegin));
if(urlBegin != -1)
System.out.println(string.substring(urlBegin));
if(codeBegin != -1)
System.out.println(string.substring(codeBegin,textBegin));
}
}