試圖在機器人應用程序,它似乎只接受使用Unirest請求使用這種「詞API」與Android獲取JSON。爲 「不可思議」(由API指定)的定義嘗試使用Unirest
請求例如:
HttpResponse<JsonNode> response = Unirest.get("https://wordsapiv1.p.mashape.com/words/incredible/definitions")
.header("X-Mashape-Key", "**********apikey************")
.header("Accept", "application/json")
.asJson();
麻煩正在執行與AsyncTask
doInBackground
的unirest請求。
protected void OnPreExecute(){
json_url = "https://wordsapiv1.p.mashape.com/words/incredible/definitions";
//where does api key go?
}
protected String doInBackground(Void... params) {
try {
// unirest goes here but how?
URL url = new URL(json_url);
HttpURLConnection httpURLConnection = (HttpURLConnection)url.openConnection();
InputStream inputStream = httpURLConnection.getInputStream();
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream));
StringBuilder stringBuilder = new StringBuilder();
while ((JSON_STRING = bufferedReader.readLine()) !=null)
stringBuilder.append(JSON_STRING+"\n");
bufferedReader.close();
inputStream.close();
httpURLConnection.disconnect();
return stringBuilder.toString().trim();
}catch (MalformedURLException e){
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
不知道到底如何內doInBackground
結構的要求。 可以做到這一點嗎?
返回doInBackground()方法和onPostExecute中的響應對象,您可以將結果鏈接到UI線程中的任何視圖。 – Inducesmile
@NollyJ我明白,但不完全確定如何去做:S –