您可能知道在 HTTP 标头中发送分块文件,没有内容长度,因此程序必须等待 0 才能理解该文件已结束。
--sample http header
POST /some/path HTTP/1.1
Host: www.example.com
Content-Type: text/plain
Transfer-Encoding: chunked
25
This is the data in the first chunk
8
sequence
0
为了接收这个文件,可以使用以下代码。
ResponseHandler<String> reshandler = new ResponseHandler<String>() {
public String handleResponse(HttpResponse response) throws ClientProtocolException, IOException {
HttpEntity entity = response.getEntity();
InputStream in = entity.getContent();
byte[] b = new byte[500];
StringBuffer out = new StringBuffer();
int len = in.read(b);
out.append(new String(b, 0 , len));
return out.toString();
}
};
但就我而言,我使用流媒体频道,换句话说,没有 0 表明该文件已结束。无论如何,如果我使用此代码,它似乎永远等待等待永远不会发生的 0。我的问题有没有更好的方法从流通道接收分块文件?