如何获得流传输速率在下议院的异常3.x
-
20-09-2019 - |
题
我有一些代码,不一堆HTTP得到,员额,并把使用 下议院的异常3.1.我想提供一个流传速度指标在我GUI,但是无法找到任何方法对于确定转速率的HttpMethod正在处理中。
我可以很容易地仅仅是时间的转移,并做一些简单的数学后完成确定什么样的速度,但这提供了一个坏的用户体验过一个长长的上传或下载。任何人都不会知道如何确定转速率的下议院的异常的要求 同时 它仍然是正在处理?
解决方案
我没有用异常广泛,所以有可能是一个简单挂钩。然而,它的出现, HttpConnection.getResponseInputStream() 返回一个简单的 InputStream
.
添加钩自己,你会需要复盖 HttpConnectionManager
和 HttpConnection
, 回一个装饰流,跟踪的数字阅读。然后您可以自旋向上的第二线民意调查这一流和显示器传送速率,或者(更佳)创建流带回调每N字节(更好的因为你没有关心并发,并且还可以设置N这样的回仅仅是援引大型文件)。
其他提示
简单钩会延长HttpEntityWrapper
并重写getContent()
方法:
public InputStream getContent() throws IOException {
InputStream wrappedin = wrappedEntity.getContent();
return new MyTransferRateInputStream(wrappedin);
}
以后可以添加此作为响应拦截
httpClient.addResponseInterceptor(HttpResponseInterceptor itcp)
这样,你不需要重写提到HttpConnectionManager
和HttpConnection
不隶属于 StackOverflow