在java中记录失败的inputstream

hrysbysz  于 2021-07-06  发布在  Java
关注(0)|答案(0)|浏览(203)

有一个流在服务器上偶尔会失败。有人怀疑,我请求的网站已经改变了一些东西,因为他们一周前有一个大的更新,并已宣布他们无意中引入了几个错误。
基本上,响应的主体应该是json,但是日志显示,在某些情况下,下面的内容不能解析为json。有没有办法确保记录整个流?例如,我想将其 Package 在try/catch子句中,并记录流以防失败。但我不知道在这种情况下连接是否会关闭。

JsonNode result = mapper.readTree(new BufferedReader(new InputStreamReader(stream)));

一个解决方案

HttpsURLConnection conn = (HttpsURLConnection) url.openConnection();
conn.setRequestMethod("POST");
conn.setRequestProperty("x-user", apiKey);
conn.setRequestProperty("x-pwd", apiPassword);

boolean ok = conn.getResponseCode() == HttpURLConnection.HTTP_OK;

InputStream stream = getInputStreamFromConnection(conn, ok);

try {
       JsonNode result = mapper.readTree(new BufferedReader(new InputStreamReader(stream)));
}
catch (Exception e) {
       log.info("Cannot parse response");
       log.info(new BufferedReader(new InputStreamReader(stream));
}

我能确定溪流没有关闭吗?

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题