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)
即使我更改为webResource.accept(“应用程序/文本”),也可以根据WADL提供json 406 – kamal 2012-08-10 14:33:27
您是否可以在Chrome REST客户端的开发人员工具中打开“网络”选项卡,并查看传输的MIME类型那里? – Elchin 2012-08-10 14:34:39
它可能是: 资源解释为图像,但使用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