使用httpclient實現圖靈機器人web api調用實例

本人在使用圖靈機器人的過程當中,發現很不錯,想試了經過api請求來獲取回覆,這樣能夠作一個頁面聊天仍是很不錯的。網上搜到的文章好多都是get接口,如今已經不能用了,也不用urlencodeer方法處理info信息了。通過嘗試,終於成功,分享方法代碼,供你們參考。java

目前圖靈已經取消了非認證免費用戶的請求次數。 如今httpclient自帶的EntityUtils解析響應效果很是好,例子代碼有點老了。編程

public static String getReplyFromRobot(String text) throws JSONException, ClientProtocolException, IOException {
		String url = "http://www.tuling123.com/openapi/api";//設置訪問接口地址
	    CloseableHttpClient httpClient = HttpClients.createDefault();//建立並實例化鏈接
	    JSONObject jsonObject = new JSONObject();//建立並實例化jsonobject
	    jsonObject.put("key", "915b34e69c0371");//輸入key
	    jsonObject.put("info", text);//輸入信息
//	    jsonObject.put("loc", "北京市中關村");//設置地點
	    jsonObject.put("userid", "915b34e41cb351c0371");//設置用戶id
	    String arguments = changeJsonToArguments(jsonObject);//將json數據轉化爲參數
	    HttpPost httpPost = new HttpPost(url+arguments);//請求post接口
	    HttpResponse response = httpClient.execute(httpPost);//獲取響應
	    InputStream inputStream = response.getEntity().getContent();//建立並實例化字節輸入流,使用響應實體做爲輸入流
	    InputStreamReader reader = new InputStreamReader(inputStream, "utf-8");//建立並實例化字符輸入流,並設置編碼格式
	    StringBuffer buffer = new StringBuffer(" ");//建立並實例化stringbuffer,存放響應信息
	    char[] buff = new char[512];//建立並實例化字符數組
	    int length = 0;//聲明變量length,表示讀取長度
	    while ((length = reader.read(buff)) != -1) {//循環讀取字符輸入流
	       String x = new String(buff, 0, length);//獲取讀取到的有效內容
	       System.out.println(x);//輸出內容
	       buffer.append(x);//將讀取到的內容添加到stringbuffer中
	    }
	    JSONObject dsa = new JSONObject(buffer.toString().trim());//將響應結果轉化爲jsonobject
		String message = dsa.getString("text");//獲取返回消息
	    return message;//返回消息
	}

往期文章精選

  1. java一行代碼打印心形
  2. Linux性能監控軟件netdata中文漢化版
  3. 接口測試代碼覆蓋率(jacoco)方案分享
  4. 性能測試框架
  5. 如何在Linux命令行界面愉快進行性能測試
  6. 圖解HTTP腦圖
  7. 寫給全部人的編程思惟
  8. 測試之JVM命令腦圖
  9. 將json數據格式化輸出到控制檯
  10. 如何測試機率型業務接口
  11. 「雙花」BUG的測試分享
  12. 將swagger文檔自動變成測試代碼

公衆號地圖 ☢️ 一塊兒來~FunTester

相關文章
相關標籤/搜索