Android设置代理访问网络Proxy
来源:互联网 发布:小凯老师淘宝 编辑:程序博客网 时间:2024/05/01 08:30
Android应用程序访问互联网资源时,在Wifi的情况下处理网络连接按照上文所讲述的方法步骤即可顺利实现;但如果当前Android设备的联网方式是通过移动运营商的网络服务为中转,间接访问的互联网资源时,则就涉及到在创建HTTP链接之前需要设置Proxy,即可尽量避免网络中断访问的情况,顺利访问互联网。
Proxy中文即代理。已经插入手机卡的Android设备,点击"设置"→"无线和网络"→"移动网络设置"→"接入点名称",任意点击一接入点,此时显示的内容即为当前运营商为使Android设备通过运营商网络顺利接入互联网而需要设置的代理信息。
通常,中国移动的接入点为CMWAP,代理IP是10.0.0.172,端口为80。
由于不同运营商其代理设置的不同,为保证代码的一致性及有效性,开发过程中需要封装出能够自适应各种不同Proxy环境并且能够顺利访问互联网的联网代码。
Proxy中文即代理。已经插入手机卡的Android设备,点击"设置"→"无线和网络"→"移动网络设置"→"接入点名称",任意点击一接入点,此时显示的内容即为当前运营商为使Android设备通过运营商网络顺利接入互联网而需要设置的代理信息。
通常,中国移动的接入点为CMWAP,代理IP是10.0.0.172,端口为80。
由于不同运营商其代理设置的不同,为保证代码的一致性及有效性,开发过程中需要封装出能够自适应各种不同Proxy环境并且能够顺利访问互联网的联网代码。
封装后的方法为openUrl(),代码如下:
public static HttpURLConnection openUrl(Context context, String urlStr) { URL urlURL = null; HttpURLConnection httpConn = null; try { urlURL = new URL(urlStr); // 需要android.permission.ACCESS_NETWORK_STATE // 在没有网络的情况下,返回值为null。 NetworkInfo networkInfo = ((ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE)) .getActiveNetworkInfo(); // 如果是使用的运营商网络 if (networkInfo != null) { if (networkInfo.getType() == ConnectivityManager.TYPE_MOBILE) { // 获取默认代理主机ip String host = android.net.Proxy.getDefaultHost(); // 获取端口 int port = android.net.Proxy.getDefaultPort(); if (host != null && port != -1) { // 封装代理連接主机IP与端口号。 InetSocketAddress inetAddress = new InetSocketAddress(host, port); // 根据URL链接获取代理类型,本链接适用于TYPE.HTTP java.net.Proxy.Type proxyType = java.net.Proxy.Type.valueOf(urlURL.getProtocol().toUpperCase()); java.net.Proxy javaProxy = new java.net.Proxy(proxyType, inetAddress); httpConn = (HttpURLConnection) urlURL.openConnection(javaProxy); } else { httpConn = (HttpURLConnection) urlURL.openConnection(); } } else { httpConn = (HttpURLConnection) urlURL.openConnection(); } httpConn.setConnectTimeout(Const.NETWORK_OPEN_TIMEOUT); httpConn.setReadTimeout(Const.NETWORK_READ_TIMEOUT); httpConn.setDoInput(true); } else { // LogOut.out(this, "No Avaiable Network"); } } catch (NullPointerException npe) { npe.printStackTrace(); } catch (MalformedURLException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return httpConn;}
1 0
- Android设置代理访问网络Proxy
- Android设置Proxy访问网络
- 设置Proxy访问网络
- CentOS设置网络访问代理
- android 访问移动网络时的wap代理设置
- android studio http proxy 设置代理
- AsyncTask异步加载以及Proxy代理模式访问网络数据
- HttpClient4.5.3设置代理(Proxy)访问目标地址
- 网络代理(Proxy)
- ASIHTTPRequest 设置Proxy(代理)
- Docker:设置代理proxy
- scrapy设置代理proxy
- Docker:设置代理proxy
- Java 设置代理IP 访问网络
- Android Studio 1.3.0 以上gradle proxy代理设置异常
- Android Studio 1.3.0 以上gradle proxy代理设置异常
- Android Studio http proxy And SDK Manager代理设置
- Android客户端添加代理访问网络
- Uncaught TypeError: Cannot read property 'width' of null
- LeetCode-26&80.Remove Duplicates from Sorted Array
- c++ zlib实现gzip压缩字符串
- SICP HuffmanCode
- AndroidJNI 通过C++调用JAVA
- Android设置代理访问网络Proxy
- 学生信息系统总结
- Nginx Basic Config
- Android N变化简介——Google 2016 I/O大会
- sift的java实现解述
- java8 lambda尝试
- React入门实践之Todo List
- 写给2016-6-19的我
- LeetCode 40. Combination Sum II(组合求和)