HTTPUrl连接自动关闭

时间:2013-09-08 15:56:19

标签: java url jaxb

我正在使用httpurlconnection读取xml响应。我使用JAXB解析了响应。我没有关闭连接。当我再次尝试从URL读取时,我收到错误作为输入流。我是否必须打开连接两次,或者有没有办法打开连接一次并读取响应两次然后关闭连接?

1 个答案:

答案 0 :(得分:0)

JAXB可能会使用InputStream,然后将其关闭。您需要使用某种FilterInputStream,以便它可以缓冲并重复使用。

使用Guava,您可以执行类似

的操作
HttpURLConnection con = ...; // get it
InputStream in = con.getInputStream();
String content = CharStreams.toString(new InputStreamReader(in, Charsets.UTF_8));

然后将新的InputStream传递给由content的字节组成的JAXB。

InputStream inForJAXB = new ByteArrayInputStream(content.getBytes());

对于需要HttpURLConnection输入流内容的任何其他组件,您可以再次执行相同的操作。