我很努力使用HttpURLConnection成功發送帶有授權頭的GET請求。返回錯誤代碼400。HttpURLConnection發送頭授權
我成功使用OKHttpClient,但請求不要使用任何依賴項。
這裏是我的代碼:
public static String GETReqUserProfiles() throws IOException {
URL url = new URL(UrlString);
HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
urlConnection.setDoOutput(true);
urlConnection.setRequestMethod("GET");
urlConnection.setRequestProperty("Content-Type", "application/" + "json");
urlConnection.setRequestProperty("authorization", "Bearer " + MANAGEMENT_TOKEN);
urlConnection.connect();
if (urlConnection.getResponseCode() != 200) {
throw new RuntimeException("Failed : HTTP error code : "
+ urlConnection.getResponseCode());
}
String assembledOutput = "";
BufferedReader responseBuffer = new BufferedReader(new InputStreamReader(
(urlConnection.getInputStream())));
String output;
System.out.println("Output from Server:\n");
while ((output = responseBuffer.readLine()) != null) {
System.out.println(output);
assembledOutput = assembledOutput + output;
}
urlConnection.disconnect();
return assembledOutput;
}
編輯:
一切工作 -
的問題是:
urlConnection.setDoOutput(true);
setDoOutput(真):聲明發送有請求的機構。 GET請求不需要主體,所以它可以設置爲false或註釋掉。相反,這用於POST,PATCH,PUT等...(需要身體的請求)。
還要注意:
urlConnection.setRequestMethod("GET");
並不需要進行特別聲明,如果發送一個GET請求(雖然我離開了可讀性的代碼)
我懷疑,如果包括setDoOutput( true)並且沒有指定請求方法,該方法將默認爲POST請求。
把urlConnection.connect();在setRequestProperty – AbhayBohra
嗨Abhay,謝謝你,我包括連接,仍然返回400 :( – ccdle12