步驟
**/*模拟機器人對話:
*
- 首先注冊API–①百度搜尋茉莉機器人 ②新增賬號 ③進入ITPK界面 擷取API ④詞庫管理建立問題與答案
- 知識點:URL類(接入位址) URLConnection類(産生聯系) 位元組流、字元流(讀取資料) 變量 流程控制 方法
- 類URL:代表一個統一資源定位符,它指向網際網路"資源"的指針
- 實作的思路:
- 1.擷取機器人所在的位址
- 2.說話,問問題
- 3.與機器人建立聯系
- 4.回話 通過位元組流拿到回複的資訊
- 5.程式讀取到相關的資訊,輸出
- /*
代碼
package demo;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;
import java.net.URLEncoder;
import java.util.Scanner;
public class 智能機器人 {
// 程式的入口
public static void main(String[] args) {
// 1.*擷取機器人所在位址*
// 為了防止發生變化 定義為final
final String API_KEY = "c02446aff52f74b78b55945454c5a6cf";
final String API_SECRET = "2kmpopubu7qo";
final String URL = "http://i.itpk.cn/api.php";
System.out.println("可以開始交流");
// 鍵盤掃描器
Scanner input = new Scanner(System.in);
//2.*建立與機器人的連結并完成對話*
// 重複的去問,是以用循環
while (input.hasNext()) {
String say = input.next();
try {
say = URLEncoder.encode(say, "utf-8");// 防止資料在傳輸的過程中亂碼
// 字元串的拼接
String url = "http://i.itpk.cn/api.php?question=" + say + "&api_key=" + API_KEY + "&api_secret="
+ API_SECRET;
URL u = new URL(url);// 位址
URLConnection uc = u.openConnection();// 與機器人建立連結
// 讀取位元組輸入流
InputStream is = uc.getInputStream();
// 将位元組流轉換成字元流
InputStreamReader isr = new InputStreamReader(is, "utf-8");
// 位元組緩沖流,使效率達到最高
BufferedReader in = new BufferedReader(isr);
// 輸出字元串
System.out.println(in.readLine());
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}