Java 为什么DataInputStream.Ready(…)挂起?
我很难理解我的申请出了什么问题。下面显示了在第一次调用时成功执行的代码(之前的Java 为什么DataInputStream.Ready(…)挂起?,java,http,stream,Java,Http,Stream,我很难理解我的申请出了什么问题。下面显示了在第一次调用时成功执行的代码(之前的HttpResponse,然后在第二次调用时,挂起在dataInputStream.readFully(…)行 doSomething(HttpResponse response) { HttpEntity responseBody = response.getEntity(); long len = responseBody.getContentLength(); byte[] payload
HttpResponse
,然后在第二次调用时,挂起在dataInputStream.readFully(…)
行
doSomething(HttpResponse response) {
HttpEntity responseBody = response.getEntity();
long len = responseBody.getContentLength();
byte[] payload = new byte[(int)len]; // <-- I've confirmed this is the correct length
DataInputStream d = null;
try {
InputStream bais = responseBody.getContent();
d = new DataInputStream(bais);
d.readFully(payload); // <-- *** HANGS HERE! ***
EntityUtils.consume(responseBody);
...
} finally {
if (d != null) {
IOUtils.closeQuietly(d);
}
}
}
doSomething(HttpResponse响应){
HttpEntity responseBody=response.getEntity();
long len=responseBody.getContentLength();
字节[]有效载荷=新字节[(int)len];//也可以关闭输入流BAI
?以确认:响应
与第二轮不同?基本http实体是不可重复的。@dhke是的,我正在更新以确认发生了什么…待机。它在构造函数处不挂起。它挂起尝试在中以可读方式填充缓冲区()
@MarkKeen我不明白为什么。他知道这个输入流的大小。