android开发使用httpurlconnection异常java.net.UnknownHostException:xxxxxxx.com

android开发使用httpurlconnection

最经在做android开发涉及到要连接网络,由于对网络连接不太会用,我首选httpurlconnection,,网上看了一下,很多人多说,用这个协议只要设置权限

<uses-permission android:name="android.permission.INTERNET"/>就够了,于是照搬,请求网络服务代码如下

URL url;
try {

url = new URL("http://www.baidu.com/");
HttpURLConnection connection = (HttpURLConnection) url
.openConnection();
connection.setReadTimeout(5000);
connection.setDoInput(true);
if(connection.getResponseCode()==200)
return changeinputstream(connection.getInputStream());
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return "false";
接着运行程序,到if(connection.getResponseCode()==200)的时候问题出现了,直接抛出io异常,查看log日志

java.net.UnknownHostException:www.baidu.com


.....
.....
.....
后面一长串的端口啊,什么地址错误的,这里申明一下,我手机网络是没问题的,为什么会出现这个问题呢,我网上查了一下,很多人都说是

<uses-permission android:name="android.permission.INTERNET"/>这个权限没设出的问题,又或者手机网络问题,但是我加了还是出错,于是继续找错,白白花费了半天的时间看了很多的垃圾论坛,什么都没发现,不服气的我又找了一些其他手机来测试,有的手机可以,有的不可以,奇了怪了,怎么会这样,想了我很久,发现用2G网的手机好像有很多的都是这样,我又看了一下权限:

<uses-permission android:name="android.permission.INTERNET"/>,他是允许打开网络套接字(socket)



闲着无聊我又把所有权限的作用大概浏览一下,发现还有个权限被很多人都漏了,而且网上也没人拿出来用

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>他是允许允许应用程序访问网络上的信息,你手机网速慢的时候,在应用程序中加入这个权限,再设置一下超时时间,试着添加他看看,在其他都保证正确的情况下,问题就迎刃而解了。

最后总结一下用httpurlconnection需要注意的几点

1.权限设置

<uses-permission android:name="android.permission.INTERNET"/>

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>

两个都加上

2.检查手机网络和你要访问的网址,最好在浏览器上手动输入你要访问的网址,看看是否连得通


  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值