我正在使用java.net.HttpUrlConnection向我的服務器發出Http請求。我意識到如果服務器返回錯誤狀態(例如400)。 HttpUrlConnection將拋出一個對應於錯誤狀態的IOException。如果服務器返回錯誤狀態,java.net.HttpUrlConnection是否總是拋出IOException?
我的問題是:如果服務器返回錯誤狀態(4xx,5xx),HttpUrlConnection是否總是拋出IOException?
我看看HttpUrlConnection API說明,但我無法回答我的問題。
更新:請參閱我的測試:
public static void main(String[] args) {
try {
String url = "https://www.googleapis.com/oauth2/v3/userinfo?access_token=___fake_token";
HttpURLConnection conn = (HttpURLConnection)new URL(url).openConnection();
conn.getResponseCode();
conn.getInputStream();
} catch (Exception ex) {
ex.printStackTrace();
// Print IOException: java.io.IOException: Server returned HTTP response code: 401 for URL: https://www.googleapis.com/oauth2/v3/userinfo?access_token=abc
// If I commented conn.getResponseCode() -> The same IOException
}
}
謝謝!
HTTP錯誤401 - 未經授權:由於證書無效,訪問被拒絕。如果滿足下列條件,則會發生此行爲:您嘗試查看的網站使用集成Windows身份驗證。 Web站點的應用程序池在身份驗證過程中進行回收。 –