Java基礎(chǔ)實(shí)戰(zhàn)圖靈機(jī)器人

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ā)。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末查坪,一起剝皮案震驚了整個(gè)濱河市寸宏,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌偿曙,老刑警劉巖氮凝,帶你破解...
    沈念sama閱讀 211,561評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異望忆,居然都是意外死亡罩阵,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,218評論 3 385
  • 文/潘曉璐 我一進(jìn)店門启摄,熙熙樓的掌柜王于貴愁眉苦臉地迎上來稿壁,“玉大人,你說我怎么就攤上這事歉备「凳牵” “怎么了?”我有些...
    開封第一講書人閱讀 157,162評論 0 348
  • 文/不壞的土叔 我叫張陵蕾羊,是天一觀的道長落午。 經(jīng)常有香客問我,道長肚豺,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,470評論 1 283
  • 正文 為了忘掉前任界拦,我火速辦了婚禮吸申,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘享甸。我一直安慰自己截碴,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,550評論 6 385
  • 文/花漫 我一把揭開白布蛉威。 她就那樣靜靜地躺著日丹,像睡著了一般。 火紅的嫁衣襯著肌膚如雪蚯嫌。 梳的紋絲不亂的頭發(fā)上哲虾,一...
    開封第一講書人閱讀 49,806評論 1 290
  • 那天,我揣著相機(jī)與錄音择示,去河邊找鬼束凑。 笑死,一個(gè)胖子當(dāng)著我的面吹牛栅盲,可吹牛的內(nèi)容都是我干的汪诉。 我是一名探鬼主播,決...
    沈念sama閱讀 38,951評論 3 407
  • 文/蒼蘭香墨 我猛地睜開眼谈秫,長吁一口氣:“原來是場噩夢啊……” “哼扒寄!你這毒婦竟也來了鱼鼓?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,712評論 0 266
  • 序言:老撾萬榮一對情侶失蹤该编,失蹤者是張志新(化名)和其女友劉穎迄本,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體上渴,經(jīng)...
    沈念sama閱讀 44,166評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡岸梨,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,510評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了稠氮。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片曹阔。...
    茶點(diǎn)故事閱讀 38,643評論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖隔披,靈堂內(nèi)的尸體忽然破棺而出赃份,到底是詐尸還是另有隱情,我是刑警寧澤奢米,帶...
    沈念sama閱讀 34,306評論 4 330
  • 正文 年R本政府宣布抓韩,位于F島的核電站,受9級特大地震影響鬓长,放射性物質(zhì)發(fā)生泄漏婆排。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,930評論 3 313
  • 文/蒙蒙 一傲隶、第九天 我趴在偏房一處隱蔽的房頂上張望祟峦。 院中可真熱鬧,春花似錦啤覆、人聲如沸苍日。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,745評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽相恃。三九已至,卻和暖如春笨觅,著一層夾襖步出監(jiān)牢的瞬間拦耐,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,983評論 1 266
  • 我被黑心中介騙來泰國打工见剩, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留揩魂,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,351評論 2 360
  • 正文 我出身青樓炮温,卻偏偏與公主長得像火脉,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,509評論 2 348

推薦閱讀更多精彩內(nèi)容