2012-08-10 137 views
2

我正在對Teamcity URI進行REST調用,以獲得lastsuccessful內部版本號,但是獲得了406.如果我在Chrome的REST控制檯中使用相同的URI,我會得到正確的String這是最新的版本號jersey java客戶端返回HTTP錯誤代碼:406

import com.sun.jersey.api.client.Client; 
import com.sun.jersey.api.client.ClientResponse; 
import com.sun.jersey.api.client.WebResource; 
import com.sun.jersey.api.client.filter.HTTPBasicAuthFilter; 

public class LastSuccessBuildNum { 

    public static void main(String[] args) { 

     try { 

      Client client = Client.create(); 
      // client basic auth demonstration 
      client.addFilter(new HTTPBasicAuthFilter("username", "password")); 

      WebResource webResource = client 
        .resource("http://localteamcity.com/teamcity/app/rest/buildTypes/id:bt26/builds/status:SUCCESS/number"); 
      ClientResponse response = webResource.accept("application/json") 
        .get(ClientResponse.class); 

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

      String output = response.getEntity(String.class); 

      System.out.println("Output from Server .... \n"); 
      System.out.println(output); 
     } catch (Exception e) { 

      e.printStackTrace(); 

     } 

    } 

} 

標準輸出:

java.lang.RuntimeException: Failed : HTTP error code : 406 
    at LastSuccessBuildNum.main(LastSuccessBuildNum.java:22) 

回答

3

檢查MIME類型在Chrome REST客戶端的轉移,也許它不是JSON 406意味着服務器沒有一個MIME客戶接受的類型:http://www.checkupdown.com/status/E406.html

是否有一個特定的原因,您使用澤西客戶端而不是Apache Http組件?

+0

即使我更改爲webResource.accept(「應用程序/文本」),也可以根據WADL提供json 406 – kamal 2012-08-10 14:33:27

+0

您是否可以在Chrome REST客戶端的開發人員工具中打開「網絡」選項卡,並查看傳輸的MIME類型那裏? – Elchin 2012-08-10 14:34:39

+0

它可能是: 資源解釋爲圖像,但使用MIME類型text/javascript:「http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js」傳輸。 sf_main.jsp:25 將資源解釋爲腳本,但使用MIME類型text/plain傳輸:「http://www.superfish.com/ws/getSupportedSitesJSON.action?ver=5.6&callback=SF_isURISupported」。 script.xd.js:8 將資源解釋爲腳本,但以MIME類型text/plain傳輸:「http://www.superfish.com/ws/rvwl.action?ver=3&callback=SF_isRvURISupported」。 script.xd.js:8 – kamal 2012-08-10 14:45:02

相關問題