Java HTTPUrl连接已自动关闭
我正在使用httpurlconnection读取xml响应。我使用JAXB解析了响应。我没有关闭连接。当我再次尝试读取URL时,我将错误作为输入流。我是否必须打开连接两次,或者是否有办法打开连接一次,读取响应两次,然后关闭连接?JAXB可能会使用Java HTTPUrl连接已自动关闭,java,url,jaxb,Java,Url,Jaxb,我正在使用httpurlconnection读取xml响应。我使用JAXB解析了响应。我没有关闭连接。当我再次尝试读取URL时,我将错误作为输入流。我是否必须打开连接两次,或者是否有办法打开连接一次,读取响应两次,然后关闭连接?JAXB可能会使用InputStream,然后关闭它。您需要使用某种类型的缓存,以使其具有缓冲和可重用性 使用番石榴,您可以执行以下操作 HttpURLConnection con = ...; // get it InputStream in = con.getInpu
InputStream
,然后关闭它。您需要使用某种类型的缓存,以使其具有缓冲和可重用性
使用番石榴
,您可以执行以下操作
HttpURLConnection con = ...; // get it
InputStream in = con.getInputStream();
String content = CharStreams.toString(new InputStreamReader(in, Charsets.UTF_8));
然后将一个新的InputStream
传递给JAXB,该流由content
的字节组成
InputStream inForJAXB = new ByteArrayInputStream(content.getBytes());
对于需要HttpURLConnection
输入流内容的任何其他组件,您可以再次执行相同的操作