Android HttpURLConnection.connect找不到源  HttpURLConnection连接失败 HttpURLConnection.connect IO异常 解决办法

以下代码为正常的Android访问PC本地电脑的Get请求,因为Android与PC不是同一设备,因此PC端不能使用localhost或者127.0.0.1等方式

需要使用内网或者外网IP地址进行访问,输入cmd:ipconfig即可查看PC端内网地址

但是以下代码虽然是毫无问题的,但是还是无法建立连接。

String path = "http://192.168.1.102/WebForm1.aspx";

        URL url;
try {
url = new URL(path); HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("GET");
conn.setConnectTimeout(6 * 1000);
conn.setReadTimeout(6 * 1000);
conn.connect();
InputStream in = conn.getInputStream();
byte[] data = toByteArray(in);
String html = new String(data, "UTF-8");
conn.disconnect();
} catch (MalformedURLException e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
} catch (IOException e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
}
一般情况下,会有2种原因造成,一是权限问题,二是安卓版本问题。我们针对这2种进行以下处理
我们首先在AndroidManifest.xml文件的manifest节点下添加如下内容:
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.INTERNET" />

然后Android的Activity中调用处增加代码:

super.onCreate(savedInstanceState);
StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder().detectDiskReads().detectDiskWrites().detectNetwork().penaltyLog().build());
//HTTP调用
StrictMode :UI和网络策略,对相应规则(rule)进行检查并且做出反应
setThreadPolicy:设置线程策略应用到特定的线程
new StrictMode.ThreadPolicy.Builder() :生成一个策略
detectDiskReads:侦测磁盘读
detectDiskWrites:侦测磁盘写
detectNetwork:侦测网络操作
penaltyLog:违规时,将违规信息写入系统日志
如果在Activity种进行磁盘操作、网络操作时一定要注册该策略,否则无法访问。
 
设置好权限和策略之后就可以尝试调用了。
conn.connect()连接后conn.connected变成true,就是已连接,说明已经可以通过Http等方式进行访问。

Android HttpURLConnection.connect找不到源 HttpURLConnection连接失败 HttpURLConnection.connect IO异常 解决办法的更多相关文章

  1. Android ADT插件更新后程序运行时抛出java.lang.VerifyError异常解决办法

    当我把Eclipse中的 Android ADT插件从21.1.0更新到22.0.1之后,安装后运行程序抛出java.lang.VerifyError异常. 经过调查,终于找到了一个有效的解决办法: ...

  2. 【转】android中重复连接ble设备导致的连接后直接返回STATE_DISCONNECTED的解决办法---不错不错,重新连接需要花费很长的时间

    原文网址:http://bbs.eeworld.com.cn/thread-438571-1-1.html /*                         * 通过使用if(gatt==null ...

  3. Windows 10 技术预览版9926 “未知源”引起系统休眠后自启的解决办法

    问题的由来: 自从安装上了最新发布的Windows 10 ,使用起来有诸多的改进:无论是重绘的图标还是通知消息中心的整合还是更智能的OneDrive客户端都使得工作起来非常愉悦. 不过笔者这两天频繁遇 ...

  4. Android开发中遇到的问题(五)——Eclipse导入Android项目出现"Invalid project description overlaps the location of another project"错误的解决办法

    一.错误描述 使用如下的命令手动创建一个Android项目 android create project -n LinearLayoutTest -t -p E:/Android/workspace/ ...

  5. Android系统编译错误Note: Some input files use or override a deprecated API. 解决办法【转】

    本文转载自:http://blog.csdn.net/lilidejing/article/details/46564491 进入系统framework层修改了下MediaPlayer.java的源码 ...

  6. Android Studio 常见异常解决办法

    Error:Failed to crunch file D:\Englis_installation_directory\AndroidStudio\AndroidWorkSpace\YoukAndr ...

  7. 找不到方法:“Boolean System.Runtime.Serialization.DataContractAttribute.get_IsReference()”的解决办法

    找不到方法:“Boolean System.Runtime.Serialization.DataContractAttribute.get_IsReference()”.的解决办法站点发布后部署到了两 ...

  8. Android开发之onActivityResult()中的resultCode为0,intent为null的解决办法

    BUG:昨天在使用activity之间传值的时候,遇到了一个bug,该bug为:Activity A启动Activity B,然后在Activity B中取到一个值,并通过back键返回到Activi ...

  9. wireshark找(检测)不到(捕获)网卡的解决办法

    1 前言 有时候打开wireshark,会提示找不到可用网卡,此时是因为NetGroup Packet Filter Driver 服务没有开启. 环境:笔记本 系统:Win10 网络:WIFI 2  ...

随机推荐

  1. Android Studio gradle配置详解

    android gradle配置详解 AppExtension类及其属性 可能大部分人看到AppExtension类会感觉到非常的陌生,其实我们在app中的build.gradle中填写配置信息的时候 ...

  2. winform(记事本的打印)

  3. 一张纸,折多少次和珠穆拉峰一样高(for if 和break)

  4. CNN卷积核计算

    作者:十岁的小男孩 目录 单层卷积核计算 三维卷积核计算 Padding=Valid&&Same 总结

  5. poj1742 多维背包

    普通的多维背包做不了,需要优化一下 但是没有学优化..别的方法也是可以做的 省去一个 表示阶段的 i 维度,dp[j]表示面值为j的钱是否被凑出来了,used[j]表示第i种硬币在凑面值为j的时候被用 ...

  6. poj2019 二维RMQ模板题

    和hdu2888基本上一样的,也是求一个矩阵内的极值 #include<iostream> #include<cstring> #include<cstdio> # ...

  7. python接口自动化测试五:乱码、警告、错误处理

    乱码: 以content字节流输出,解码成utf-8: print(r.encoding)   # 查看返回的编码格式: 去掉Warning警告: import urllib3 urllib3.dis ...

  8. WebService:CXF-SPRING 读书笔记

    WEBSERVICE是给第三方提供一个接口,可以方便的与不同平台的系统进行通信,当然咯,这个只是我们通常运用到的最主要的作用,还有其他作用,见BAIDU知道.一个WEBSERVICE简单实例分为以下几 ...

  9. 计算机编码--c语言中输出float的十六进制和二进制编码

    c语言中没有可以直接打印float类型数据的二进制或者十六进制编码的输出格式, 因此,需要单独给个函数,如下: unsigned int float2hexRepr(float* a){ unsign ...

  10. 【C++ Primer 第7章】定义抽象数据类型

    参考资料 1. C++Primer #7 类 Sales_data类 Sales_data.h #include<iostream> #include<string> clas ...