jersey java客户端返回HTTP错误代码:406
我正在对Teamcity URI进行REST调用,以获得最后一个成功的构建编号,但得到406。如果我在Chrome的REST控制台中使用相同的URI,我会得到正确的字符串(这是最新的版本号)jersey java客户端返回HTTP错误代码:406,java,rest,jersey,Java,Rest,Jersey,我正在对Teamcity URI进行REST调用,以获得最后一个成功的构建编号,但得到406。如果我在Chrome的REST控制台中使用相同的URI,我会得到正确的字符串(这是最新的版本号) import com.sun.jersey.api.client.Client; import com.sun.jersey.api.client.ClientResponse; import com.sun.jersey.api.client.WebResource; import com.sun.jer
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)
检查Chrome REST客户端中传输的MIME类型,可能不是json。406表示服务器没有客户端接受的MIME类型:
使用jersey客户端而不是Apache Http组件有什么具体原因吗?json根据WADL也可用,即使我改为webResource.accept(“应用程序/文本”)我仍然得到406你能在Chrome REST客户端的开发者工具中打开网络选项卡并查看传输的MIME类型吗?可能是:资源被解释为图像,但传输的MIME类型为text/javascript:“”.sf_main.jsp:25资源被解释为脚本,但传输的MIME类型为text/plain:“”.script.xd.js:8资源被解释为脚本,但使用MIME类型text/plain:“”传输。script.xd.js:8@kamal这里没有MIME tyoe
application/text
trytext/plain
。宾果游戏感谢@AlexStybaev成功。我想知道为什么mkyong ref有webResource.type(“application/json”)