我運行一個簡單的Java程序獲得的HttpResponse代碼,但由於某種原因,不是所有的代碼正好是200,因爲檢查像www.reddit某些URL的網絡選項卡時,我覺得這很奇怪。 com,響應是200,但是我的程序正在返回一個不同的值。的HttpResponse代碼不是200
下面的代碼...
try{
String urlName = "http://www.reddit.com";
URL url = new URL(urlName);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("GET");
connection.connect();
String message = connection.getResponseMessage();
System.out.println("Message: " + message);
int code = connection.getResponseCode();
System.out.println(Integer.toString(code));
}
catch(Exception e){
e.printStackTrace();
}
最後,有沒有理由設置RequestMethod重新獲得和連接?無論我是否擁有該代碼,我都會得到響應代碼,因爲連接執行openConnection();
目標 - 使所有有效連接返回200
什麼是它打印,如果不是200? –
@MattBall 301爲Reddit,302爲Facebook,但谷歌返回200.所有應該是200,如果您檢查在網絡選項卡 – Steveo90
這是一個重定向。您的瀏覽器正在關注它們;你的代碼不是。我強烈建議使用HubSpot(我工作的公司)使用更好的HTTP客戶端庫,例如Apache的HttpClient或[Horizon](https://github.com/HubSpot/horizon)。 Java的內置HTTP支持對最終用戶來說並不好。 –