HTTPURLConnection中接收流被截断的问题

标签: Java资料 | 发表时间:2012-12-19 00:00 | 作者:Administrator
出处:http://www.scriptlover.com
在Java中使用HTTPURLConnection遇到了一个很诡异的问题,接收返回的数据流总是被截断,方法如下:
InputStream output = connection.getInputStream();
byte[] bytes = new byte[output.available()];
output.read(bytes);

在网上也查了很多资料,最后发现是因为数据流的返回是异步的,也就是说不能一次性把包都收完,比如按照如下方法:

ByteArrayOutputStream buffer = new ByteArrayOutputStream();
int c;
while((c = output.read()) >= 0){
    buffer.write(c);
}
buffer.close();
byte[] bytes = buffer.toByteArray();

当然有时候也要处理GZIP解压问题,代码如下:

GZIPInputStream gstream = new GZIPInputStream(output);
ByteArrayOutputStream buffer = new ByteArrayOutputStream();
int c;
while((c = gstream.read()) >= 0){
    buffer.write(c);
}
buffer.close();
bytes = buffer.toByteArray();

相关 [httpurlconnection 接收 问题] 推荐:

HTTPURLConnection中接收流被截断的问题

- - 脚本爱好者
在Java中使用HTTPURLConnection遇到了一个很诡异的问题,接收返回的数据流总是被截断,方法如下:. 在网上也查了很多资料,最后发现是因为数据流的返回是异步的,也就是说不能一次性把包都收完,比如按照如下方法:. 当然有时候也要处理GZIP解压问题,代码如下:.

[原]Android HttpURLConnection Accept-Encoding: gzip 版本问题

- - bob007abc的专栏
Android 官方文档对 HttpURLConnection 的 Performance 的描述有一段:. 参见: http://developer.android.com/reference/java/net/HttpURLConnection.html. 就是说 使用HttpURLConnection发请求时,默认的request hearder里会加上 Accept-Encoding: gzip.

Android HttpURLConnection及HttpClient选择

- - Trinea
介绍Android中Http请求方式的选择、区别及几个常用框架对API的选择. Android Http请求API主要分两种:. 第一种是Java的HttpURLConnection,默认带gzip压缩. 第二种Apache的HttpClient,默认不带gzip压缩. 两种方式请求connection都是keep alive,默认User-Agent不同.

HttpURLConnection实现断点下载

- - Web前端 - ITeye博客
int code = con.getResponseCode();//只要断点下载,返回的已经不是200,206. System.err.println("服务器返回的长度:"+serverSize);. System.err.println("这次从哪开开始写:"+size);. 已有 0 人发表留言,猛击->> 这里<<-参与讨论.

HttpUrlconnection 、Httpclient get 、post 请求核心代码

- - CSDN博客推荐文章
HttpURLConnection的使用  . * URL请求的类别分为二类,GET与POST请求. * a:) get请求可以获取静态页面,也可以把参数放在URL字串后面,传递给servlet, . * b:) post与get的不同之处在于post的参数不是放在URL字串里面,而是放在http请求的正文内.

[译]Android访问网络,使用HttpURLConnection还是HttpClient?

- - 郭霖的专栏
转载请注明出处: http://blog.csdn.net/guolin_blog/article/details/12452307. 最近在研究Volley框架的源码,发现它在HTTP请求的使用上比较有意思,在Android 2.3及以上版本,使用的是HttpURLConnection,而在Android 2.2及以下版本,使用的是HttpClient.

简单使用URLConnection、HttpURLConnection和HttpClient访问网络资源

- - CSDN博客移动开发推荐文章
URL的openConnection方法将返回一个URLConnection,该对象表示应用程序和URL之间的通信连接. 程序可以通过它的实例向该URL发送请求,读取URL引用的资源. 下面通过一个简单示例来演示:. // 直接使用URLConnection对象进行连接. // 得到URLConnection对象.

稿费问题

- Ruixing F - 创造社新任社长宋石男
据说现在全中国靠给平媒自由撰稿为生的,超不过1000人,而且不少处于相当窘迫的境况,就算想买根绳子来上吊,都买不起质量好的,结果绳子老断. 作为自由撰稿人的一员,我对此深有体会. 1999年国家版权局出台的基本稿酬标准,每千字30元-100元,至今仍为全国发行的报刊的“行业指导价”. 业内估计,全国报刊的稿费中位数大约也就在100元.

lvs 问题

- - 操作系统 - ITeye博客
1: LVS连接的持久时间. 1)同一个ip发来请求到同一台RS的持久超时时间. ipvsadm -A -t 192.168.169.100:80 -s rr -p 120     #该客户的请求120秒内被分配给同一台web.  2)一个链接创建后空闲时的超时时间(分别是:tcp的空闲超时时间、lvs收到客户端tcp fin的超时时间、udp的超时时间).

javaMail的邮件接收

- - 编程语言 - ITeye博客
下面是一个邮件接收的工具类,有点长.      * 获取发送邮件者信息.      * 获取邮件收件人,抄送,密送的地址和信息. 根据所传递的参数不同 "to"-->收件人,"cc"-->抄送人地址,"bcc"-->密送地址.      * 获取邮件主题.      * 获取邮件发送日期.      * 获取邮件正文内容.