HttpClient 无法连接url却不抛出IOException

aasailan 2015-03-21 04:46:20
今天学习HttpClient发现一个问题,无法解决。
我用HttpClient去连接一个网站A,手机开着wifi连接着一个学校的校园无线网,但由于没有登录,所以是无法通过校园无线网上网的,此时httpclient是无法连接到网站A的,但是httpclient却不会抛出IOException。如果关闭手机wifi和移动网络,则会正常抛出IOException。哪位大神指点迷津。
代码如下:
try {
DefaultHttpClient httpclient=new DefaultHttpClient();
HttpGet get1=new HttpGet("http://202.116.0.176/");
HttpResponse re1 = httpclient.execute(get1);
CookieStore cooStore= httpclient.getCookieStore(); //获取cookie
List<Cookie> lists=cooStore.getCookies();
for(Cookie list:lists){
cookiename=list.getName();
cookievalue=list.getValue();
Log.d("cookiename", cookiename); //输出cookiename
Log.d("cookievalue", cookievalue); //输出cookievalue
}

HttpEntity entity1=re1.getEntity();
String html=EntityUtils.toString(entity1);
doc=Jsoup.parse(html);

Elements hiddeninput1=doc.select("input[name=__VIEWSTATE]");
__VIEWSTATE=hiddeninput1.attr("value");
Elements hiddeninput2=doc.select("input[name=__VIEWSTATEGENERATOR]");
__VIEWSTATEGENERATOR=hiddeninput2.attr("value");
Elements hiddeninput3=doc.select("input[name=__EVENTVALIDATION]");
__EVENTVALIDATION=hiddeninput3.attr("value");
//输出隐藏输入的值,调试用
Log.d("__VIEWSTATE",__VIEWSTATE );
Log.d("__VIEWSTATEGENERATOR", __VIEWSTATEGENERATOR);
Log.d("__EVENTVALIDATION", __EVENTVALIDATION);
} catch (ClientProtocolException e) {
// TODO Auto-generated catch block
e.printStackTrace();
handler.sendEmptyMessage(0); //异常处理
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
handler.sendEmptyMessage(0); //异常处理
}
...全文
207 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
anabiosispe 2015-03-30
  • 打赏
  • 举报
回复
http客户端是可以采用内部重定向接管的,然后把重定向的内容用原来请求的ip发回客户端。
Birds2018 2015-03-22
  • 打赏
  • 举报
回复
你设置一下超时试试,http://202.116.0.176/ 这个网站可能在你的网络环境下无法链接成功,
freeCodeSunny 2015-03-22
  • 打赏
  • 举报
回复
链接重定向了
aasailan 2015-03-22
  • 打赏
  • 举报
回复
谢谢你的建议!!我把entity的内容打印出来看过了。发现了没有抛出IOException是因为,httpclient发出get请求后,学校的校园无线网返回了一个登陆界面。也就是说,没有连接到我想要的"http://202.116.0.176/"这个网址,而是加载到了校园网登陆界面。但是我还是不明白,难道httpclient是只要收到http报文回复就认为没有出错吗?它不会检查自己获取的http报文是否来自于正确的url?

80,351

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧