Android中HTTP请求出现“Received authentication challenge is null”异常和“Read timed out”解决

注意:本文出自 “阿飞”的博客 ,如果要转载本文章,请与作者联系!


这两天忽然收到Test Team告知公司Android客户端一应用在部分手机上出现下述异常,部分又运行良好,很是奇怪:

1) HttpUtils/ getInputStream failed, e:Received authentication challenge is null


PS: 应用请求采用的是Java中的HttpConnection,而没有使用HttpClient。


后来经过多台手机的测试发现确实存在这样的问题,而且是出现在android v4.04版本上的。后来查了下资料发现很多人也遇到了类似的问题,比如:

1) http://d.hatena.ne.jp/Kazzz/20100706/p1

2) http://www.cnblogs.com/slider/archive/2012/07/16/2593816.html


而且大家都是使用的Java中的HttpConnection出的问题,都是在请求身份验证的时候出现的。后来发现,是由于服务器返回了401错误之后(比如用户名密码错误的时候)。这个好像也是jdk的一个bug,我在buglist中找到过这个bug。但是不知道如何解决,于是,我把HttpConnection替换成了HttpClient,结果又出现了如下异常:

1)W/System.err(18984): java.net.SocketTimeoutException: Read timed out


于是又开始陷入了另一个坑里,经过各种测试发现,原来是HttpClient中setSoTimeout(params, 0);设置的问题,原来我设置的是4s,后来修改为20s(这个值偶尔会出问题),后来我直接设置成0,问题解决。


这个问题耗了我太多的时间了,恼火啊。。。在这里记录一下,也给遇到同样问题的朋友做个参考吧。



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值