Java基礎(chǔ)實(shí)戰(zhàn)圖靈機(jī)器人
最近老是聽到單身狗自嘲,要new一個(gè)對象准谚。哼挫剑,我也要new一個(gè)。今天我們就來介紹一下圖靈機(jī)器人柱衔,并根據(jù)她提供的接口樊破,來開發(fā)一個(gè)屬于我們自己的小秘。
在開發(fā)之前呢唆铐,我們需要做一些準(zhǔn)備工作捶码。比如說先注冊一個(gè)圖靈機(jī)器人的賬號,我就來演示一下如何申請一個(gè)圖靈機(jī)器人的賬號或链。
1、我們先百度搜索圖靈機(jī)器人档押,點(diǎn)進(jìn)他的官網(wǎng)澳盐,如下圖
2、點(diǎn)擊立即注冊令宿,如下圖
3叼耙、注冊之后登陸即可,會看到如下的界面
4粒没、點(diǎn)擊創(chuàng)建機(jī)器人筛婉,根據(jù)自己的需求選吧,作為演示我就選個(gè)其他癞松;以后你可以把圖靈機(jī)器人用到你的微信公眾號上爽撒,或者其他,開發(fā)一個(gè)專屬于你的業(yè)務(wù)的客服响蓉。
5硕勿、填好之后,會看到下圖的界面枫甲,我們進(jìn)行一下人物設(shè)置源武,這里大家根據(jù)自己的需要進(jìn)行設(shè)置
6、設(shè)置好后想幻,進(jìn)到機(jī)器人管理界面粱栖,就可以看到我們新創(chuàng)建的機(jī)器人,如下圖
到這里我們的準(zhǔn)備工作脏毯,可以說就已經(jīng)差不多了闹究,大家可以看一看她的api文檔。在正式開發(fā)之前抄沮,我們還需要下載幾個(gè)jar包跋核,我們還是到http://mavenrepository.com/這個(gè)網(wǎng)站下載岖瑰,要下載的jar分別是
大家自行下載,一會開發(fā)的時(shí)候我們需要用到
到這里我們的準(zhǔn)備工作就做完了砂代,接下來我們進(jìn)行開發(fā)吧蹋订。在這里我們就不開web項(xiàng)目了,我們就新建一個(gè)Java project刻伊,分別建三個(gè)包露戒,一個(gè)util包,一個(gè)test包捶箱,一個(gè)lib包智什;util包放我們寫的工具類,test包放我們的測試類丁屎,lib包放我們的jar包荠锭。接下來我們就新建一個(gè)工程吧,如下圖
我們還要新建兩個(gè)類晨川,如上圖
接下來我們編寫一下证九,工具類吧。在編寫之前呢共虑,我們理一下思路愧怜,
1、 先封裝我們的api接口
2妈拌、 發(fā)送http請求
3拥坛、 如果狀態(tài)碼是200,則獲取返回的結(jié)果尘分,結(jié)果是以json的格式返回猜惋;默認(rèn)的話都會有code和text的鍵值對,code代表的信息
4培愁、 返回結(jié)果
好了惨奕,我們開始編碼吧
package utils;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
import org.apache.http.HttpResponse;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;
/**
* 圖靈機(jī)器人api工具類
* @author admin
*
*/
public class TuLingApiUtil {
//自己的apikey,注意不是密鑰
private static final String key = "d3a63c004e614549a26beaa7fb9c53f5";
public static String getResult( String content ) {
//圖靈api接口
String apiUrl = "http://www.tuling123.com/openapi/api?key="+key+"&info=";
try {
//內(nèi)容需要utf-8編碼(官方文檔中有說明)
content = URLEncoder.encode(content, "utf-8");
//拼接url
apiUrl = apiUrl + content;
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
//封裝請求頭
HttpGet request = new HttpGet(apiUrl);
String result = "";
try {
//發(fā)送http請求
HttpResponse response = HttpClients.createDefault().execute(request);
//獲取響應(yīng)碼
int code = response.getStatusLine().getStatusCode();
if (code == 200) {
//獲取返回的結(jié)果
result = EntityUtils.toString(response.getEntity());
} else {
System.out.println("code=" + code);
}
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
//返回結(jié)果
return result;
}
}
工具類我們已經(jīng)寫好竭钝,我們寫個(gè)測試類吧梨撞,代碼如下,我就不再解釋
package test;
import java.util.Scanner;
import org.junit.Test;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;
import utils.TuLingApiUtil;
public class TestApi {
@Test
public void test() {
Scanner sc = new Scanner(System.in);
while(true) {
String content = "";
//控制臺輸入信息
content = sc.nextLine();
//接收返回的結(jié)果
String result = TuLingApiUtil.getResult(content);
//把json格式的字符串轉(zhuǎn)化為json對象
JsonObject json = new JsonParser().parse(result).getAsJsonObject();
//獲得text鍵的內(nèi)容香罐,并轉(zhuǎn)化為string
String back = json.get("text").toString();
//打印結(jié)果
System.out.println(back);
}
}
}
到這里我們的編碼已經(jīng)完成了卧波,我們測試來看一下吧
自己玩了一會理解度還是蠻高的,還是有點(diǎn)皮的哈哈庇茫。不同的狀態(tài)返回的json格式是不一樣的港粱,但code和text的格式都是一樣的,大家可以根據(jù)自己的業(yè)務(wù)進(jìn)行開發(fā)。