几个小时以来,我一直在努力完成标题上的内容,但没有什么效果。一直在尝试各种不同的HTTP客户端和各种不同的错误。相关问题:
getErrorStream: stream closed, getInputStream: works
https://stackoverflow.com/questions/35065591/apache-http-client-get-body-on-error
不幸的是,这两个问题都没有答案。有人能给我一个有效的解决方案吗?我知道Stackoverlflow并不是一个“请求代码”的平台,但是很明显,我尝试自己解决它。
我只想向服务器提交JSON数据,即使在40X错误(服务器仍然返回JSON数据)时也获得响应(也在JSON中)。
发布于 2016-01-28 13:11:14
泽西岛的客户是我的答案
https://jersey.java.net/documentation/latest/client.html
示例:
ClientConfig clientConfig = new ClientConfig();
Client client = ClientBuilder.newClient(clientConfig);
WebTarget webTarget = client.target("http://example.com/rest");
WebTarget resourceWebTarget = webTarget.path("resource");
WebTarget helloworldWebTarget = resourceWebTarget.path("helloworld");
WebTarget helloworldWebTargetWithQueryParam =
helloworldWebTarget.queryParam("greeting", "Hi World!");
Invocation.Builder invocationBuilder =
helloworldWebTargetWithQueryParam.request(MediaType.APPLICATION_JSON_TYPE);
invocationBuilder.header("some-header", "true");
Response response = invocationBuilder.post(Entity.entity("{'my':'json'}", MediaType.APPLICATION_JSON_TYPE));
System.out.println(response.getStatus());
System.out.println(response.readEntity(String.class));
无论响应response.getStatus()
的状态如何,您都可以获得响应response.readEntity(String.class)
的主体
https://stackoverflow.com/questions/35071820
复制