2015-05-25 80 views
0

我試圖解決以下如何從REST客戶端的響應對象

查詢此Web服務中提到的問題得到URL對象100次:

http://www.randomwebsite.com/cgi-bin/random.pl 

響應包含一個簡短的HTML文檔鏈接裏面。查詢此鏈接並存儲鏈接URL,以及返回的HTTP響應代碼在合適的數據結構中。 應用程序應輸出由域名第一個字符(忽略http://和www前綴)排序的所有鏈接URL的列表,並且還打印相關的HTTP代碼(如果不是200)。

我正在嘗試使用Jersey客戶端

Client client = Client.create(); 
      WebResource webResource2 = client.resource("http://www.randomwebsite.com/cgi-bin/random.pl"); 

      ClientResponse response2 = webResource2.accept("text/html").get(ClientResponse.class); 

      System.out.println(response2); 

      if (response2.getStatus() != 200) { 
       throw new RuntimeException("Failed : HTTP error code : " + response2.getStatus()); 
      } 

      String output2 = response2.getEntity(String.class); 
      System.out.println("\n============getFtoCResponse============"); 
      System.out.println(output2); 


GET http://www.westciv.com/ returned a response status of 200 OK 

現在的問題是存儲URI我不能夠得到uri.How從object.I我能看到隨機URL中RESPONSE2響應得到URI其打印時。但無法獲取作爲對象查看URL的信息。我無法從客戶端獲得該信息,因爲該隨機網站會重定向到隨機站點。

回答

3

發送的響應是重定向,帶有狀態302你的客戶端允許not following redirects automatically

client.setFollowRedirects(false); 

你應該從Location響應報頭中的URL。

+0

這很酷的作品,爲我感謝you.One疑問,但如果請求重定向url失敗將獲得302或40x/50x?如何處理錯誤情況? – javascriptlearner

+0

如果禁用重定向後續處理,則不會對重定向的URL發出任何請求。發送請求時的狀態取決於服務器。如果資源不存在,你會得到一個404。如果服務器有內部錯誤,你會得到一個500等 –

+0

好吧,然後我得到這個重定向的網址,並再次調用它來獲得狀態,所以2我必須做的休息電話? – javascriptlearner

相關問題