java - POST JSON 并检索 JSON 响应,即使出现 40X 错误

标签 java json httprequest

我已经尝试完成标题所说的内容几个小时了,但没有任何效果。尝试了各种不同的 HTTP 客户端,但出现了各种不同的错误。相关问题:

getErrorStream: stream closed, getInputStream: works

https://stackoverflow.com/questions/35065591/apache-http-client-get-body-on-error

遗憾的是,这两个问题都没有答案。有人可以真正给我一个可行的解决方案吗?我知道 Stackoverlflow 不是一个“索要代码”平台,但很明显我尝试自己解决它。

我只想将 JSON 数据提交到服务器并获取响应(也是 JSON 格式),即使出现 40X 错误(因为服务器仍然返回 JSON 数据)。

最佳答案

泽西客户端将是我的答案

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)

关于java - POST JSON 并检索 JSON 响应,即使出现 40X 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35071820/

相关文章:

javascript - 如何从 Jain 数据 js 脚本中的 python 访问变量?

jquery - 返回需要执行的javascript,是否使用json?

javascript - Lodash:如何创建具有新对象结构的数组

android - 从 HttpRequest 获取 POST 数据 (Android)

apache-flex - 中止 RemoteObject 调用

json - Protractor :HTTP 响应测试

java - Intermec 打印机中的 DP 命令问题

java - 使用 SmartGWT 包装预制元素?

java - 如何测试 SOAP 服务?

java - 如何使用 Maven 在 WAR、WEB-INF/lib 目录中包含特定的 jar