在我的时区晚安.
我正在构建一个http机器人,当我从服务器收到响应时,我想做两件事.首先是打印响应的主体,因为我知道响应的主体是TEXT/HTML类型的我做的第二件事是通过一个html解析器解析响应(在这个特定情况下NekoHtml).代码片段:
//Print the first call
printResponse(urlConnection.getInputStream());
document = new InputSource(urlConnection.getInputStream());
parser.setDocument(document);
Run Code Online (Sandbox Code Playgroud)
问题是当我运行第一行(printResponse)时,第二行将抛出异常.现在问题 - >这是因为InputStream只能被读取一次?每次我们从输入流读取字节被清除?我们怎样才能从输入流中读取更多内容?
提前致谢
最好的祝福
除了Ted Hopp所说的,看看Apache Commons IO库.你会找到:
IOUtils.toString(urlConnection.getInputStream(), "UTF-8") 实用程序方法,它接受输入流,完全读取它并返回给定编码中的字符串
TeeInputStream是一个InputStream装饰器,它将复制每个读取字节并将其复制到给定的输出流中.
应该管用:
InputStream is = new TeeInputStream(urlConnection.getInputStream(), System.out);
Run Code Online (Sandbox Code Playgroud)