HttpURLConnection:如何读取400响应的有效负载

时间:2014-07-11 22:22:42

标签: java json httpurlconnection ioexception payload

我使用以下代码向我的Web服务发送JSON请求,并且对于错误的请求,我在有效负载中返回400消息代码以及详细的JSON错误响应。

我不明白在使用HttpURLConnection时如何在客户端检索此有效内容,因为它会立即抛出IOException并且连接的InputStream为{ {1}}。

null

还尝试使用HttpURLConnection connection = this.connect(url); connection.setRequestMethod(method); OutputStreamWriter out = new OutputStreamWriter(connection.getOutputStream()); out.write(jsonMessage); InputStream is = null; try { is = connection.getInputStream(); // IOException is thrown, how can I still get payload?? } catch (Exception e) { } String response = getStringFromInputStream(is); ,但这包含Apache Tomcat的默认错误页面,而不是我可以看到的有效负载,例如我使用可视REST API客户端。

1 个答案:

答案 0 :(得分:-2)

我发现许多线程声明如果状态代码是错误消息,HTTPUrlConnection根本不传输标准有效负载,例如stackoverflow.com/questions/21526082/ ...,请参阅此博客tbray.org/ongoing/When/201x/2012/01/17/HttpURLConnection

我最终使用了更强大的Apache软件包。