我正在对 Teamcity URI 进行 REST 调用,以获取 lastSuccessful 版本号,但得到 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.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();
}
}
}
Run Code Online (Sandbox Code Playgroud)
标准输出:
java.lang.RuntimeException: Failed : HTTP error code : 406
at LastSuccessBuildNum.main(LastSuccessBuildNum.java:22)
Run Code Online (Sandbox Code Playgroud)
在 Chrome REST Client 中检查传输的 MIME 类型,可能不是 json。406 表示服务器没有客户端接受的 MIME 类型:http : //www.checkupdown.com/status/E406.html
您使用 jersey 客户端而不是 Apache Http Components 是否有特定原因?
| 归档时间: |
|
| 查看次数: |
12291 次 |
| 最近记录: |