Android通过HttpURLConnection与HttpClient联网代理网关设置

基于PDF文档结构的数字隐写 PDF隐写 阅读详情

转载自:http://blog.youkuaiyun.com/mrlixirong/article/details/6966862 


 Android联网主要使用HttpURLConneciton和HttpClient进行联网,在手机联网的时候,我们优先选择wifi网络,其次在选择移动网络,这里所述移动网络主要指cmwap。

大家都知道cmwap连接需要设置代理地址和端口,那么,android程序中如何设置代理呢?

1、HttpURLConnection设置代理

[java]  view plain copy
  1. //当我们使用的是中国移动的手机网络时,下面方法可以直接获取得到10.0.0.172,80端口  
  2. String host=android.net.Proxy.getDefaultHost();//通过andorid.net.Proxy可以获取默认的代理地址  
  3. int port =android.net.Proxy.getDefaultPort();//通过andorid.net.Proxy可以获取默认的代理端口  
  4. SocketAddress sa=new InetSocketAddress(host,port);  
  5. //定义代理,此处的Proxy是源自java.net  
  6. Proxy proxy=new Proxy(java.net.Proxy.Type.HTTP,sa);  
  7. URL getUrl = new URL(“www.baidu.com”);   
  8. HttpURLConnection con = (HttpURLConnection) getUrl.openConnection(proxy);//设置代理  


2、HttpClient设置代理

[java]  view plain copy
  1. DefaultHttpClient httpClient=new DefaultHttpClient();  
  2. String host=Proxy.getDefaultHost();//此处Proxy源自android.net  
  3. int port = Proxy.getPort(context);//同上  
  4. HttpHost httpHost = new HttpHost(host, port);   
  5. //设置代理  
  6. httpClient.getParams().setParameter(ConnRouteParams.DEFAULT_PROXY,httpHost);  
  7. HttpGet httpGet=new HttpPost("<a href="http://www.baidu.com">www.baidu.com</a>");  
  8. HttpResponse response=httpClient.execute(httpGet);  

 

3、判断手机是否联网

[java]  view plain copy
  1. boolean isConnect(){  
  2.     ConnectivityManager cm = (ConnectivityManager) this.getSystemService(Context.CONNECTIVITY_SERVICE);  
  3.     if(cm!=null){  
  4.         return true;  
  5.     }  
  6.     return false;  
  7. }  


4、判断当前网络是否为WIFI

[java]  view plain copy
  1. boolean isWifi(){  
  2.     ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);  
  3.     if(cm!=null){  
  4.         NetworkInfo  ni = cm.getActiveNetworkInfo();  
  5.         if(!ni.getTypeName().equals("WIFI")){  
  6.             /* 
  7.              * ni.getTypeNmae()可能取值如下 
  8.              * WIFI,表示WIFI联网 
  9.              * MOBILE,表示GPRS、EGPRS 
  10.              * 3G网络没有测试过 
  11.              * WIFI和(E)GPRS不能共存,如果两个都打开,系统仅支持WIFI 
  12.              */  
  13.             return true;  
  14.         }  
  15.     }  
  16.     return false;  
  17. }  


 综合判断网络类型,我们便可以确定是否需要设置代理,实现正确的联网。

示例一

[java]  view plain copy
  1. HttpURLConnection con =null;  
  2. URL postUrl = new URL("www.baidu.com");  
  3. boolean isProxy=false;  
  4. //网络检测  
  5. ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);  
  6. boolean isProxy=false;  
  7. if(cm!=null){  
  8.     NetworkInfo  ni = cm.getActiveNetworkInfo();  
  9.     if(ni!=null){  
  10.         if(! ni.getTypeName().equals("WIFI")){  
  11.             isProxy=true;  
  12.         }  
  13.     }  
  14. }  
  15. if(isProxy){  
  16.     Proxy proxy=new Proxy(java.net.Proxy.Type.HTTP,new InetSocketAddress(android.net.Proxy.getDefaultHost(),android.net.Proxy.getDefaultPort()));  
  17.     con = (HttpURLConnection) postUrl.openConnection(proxy);  
  18. }else{  
  19.     con = (HttpURLConnection) postUrl.openConnection();  
  20. }  


示例二

[java]  view plain copy
  1. DefaultHttpClient httpClient=new DefaultHttpClient();  
  2. //网络检测  
  3. ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);  
  4. if(cm!=null){  
  5.     NetworkInfo  ni = cm.getActiveNetworkInfo();  
  6.     if(ni!=null){  
  7.         if(!ni.getTypeName().equals("WIFI")){  
  8.             //设置代理  
  9.             String host=Proxy.getDefaultHost();  
  10.             int port = Proxy.getPort(context);    
  11.             HttpHost httpHost = new HttpHost(host, port);   
  12.             httpClient.getParams().setParameter(ConnRouteParams.DEFAULT_PROXY,httpHost);  
  13.         }  
  14.     }  
  15. }  

Google Earth Engine 红树林制图方法的代码(三个模块) 谷歌地球引擎红树林制图方法(GEM)提供了一种直观、易用且可复制的工具,适用于广泛的非专业沿海管理者和决策者。该工具全面回顾并整合了相关的红树林遥感文献,并利用云计算的力量,包括简化的基于图像的潮汐校准方法。GEM 可免费用于非营利用途,并在 GEE 中运行,包含全面且详细注释的代码。GEM 专门设计用于绘制全球范围内多日期红树林分布并量化其动态变化。目前可用的工具和方法未能充分利用沿海管理者通常持有的丰富地方专业知识——GEM 致力于填补这一空白,帮助结合地方专业知识与 GEE 的云计算能力。 阅读详情

相关推荐

VS Code 配置 LaTeX 写作环境完全指南

本文详细介绍了如何在 VS Code 中配置 LaTeX 写作环境,涵盖了从安装必备组件到高级功能的全面指南。首先,用户需要安装 LaTeX 发行版(如 TeX Live 或 MiKTeX)和 VS Code 插件(如 LaTeX Workshop)。接着,通过修改 settings.json 和 keybindings.json 文件,用户可以自定义编译、查看快捷键等基础配置。文章还提供了高效写作技巧,如使用代码片段和多文件项目管理,并介绍了高级功能如反向同步、公式预览和参考文献管理。此外,针对常见问题(

weixin_70043030的博客 1984

java http请求设置代理 Proxy

java http 代理方式

qq_38653981的博客 1万+

MPLAB修改工程名称方法

修改工程名称方法 如下图所示,工程名称为:Loar_V1.0_20210205 现将该工程名称修改为:Loar_V1.1_20210205 修改方法: ①找到工程文件路径,将工程名称修改为Loar_V1.1_20210205 注意:此时打开变成进行编译,会报错:Loar_V1.1_20210205.production.hex does not exist or is not an executable, ②找到工程下的 nbproject 文件夹 ③将nbproject文件夹下的文件全部打开,并且将

qq_26195179的博客 1759

HttpUrlConnection网络连接

首先我们要了解的是HttpUrlConnection是由Sun公司封装好的网络连接,通过其中的Get和Post方法来获得客户端和服务器提供的数据。   我们要知道,获得数据的方法有两种,分别是doGet方法和doPost方法。首先我们要了解两种该方法的区别。Get方法  通过Get方法向服务器提供数据是将数据加在url后面的。提供数据的方式是显式的。Post方法  通过Post向服务器提供数据的方

To_be_Designer 1768

概率整形 Peobabilistic Shaping PS 第一节

概率整形概述 概率整形(Peobabilistic Shaping, PS)是一种针对于调制格式的优化技术,它为光通信通信提供了非常高的灵活性,但不会增加系统复杂性。尤其是光通信中的非线性问题会限制功率,使得PS就像为光通信量身定做的一样。 PS技术能够在不增加发送功率的前提下,获得高频谱效率和传输容量。2016年在使用PS技术的实验中实现了6600km单模光纤的65Tbit/s数据的传输。 到目前位置PS技术的研究主要集中在具有相干检测的单载波光纤传输。 概率整形的基本原理 概率整形技术就是通过在编码前

Explore_OuO的博客 8126

MATLAB仿真耗散孤子共振与金兹堡-朗道方程解析

耗散孤子共振(DSR)是非线性光学中的特殊脉冲现象,通过平衡非线性效应、色散与能量耗散实现稳定传输。其核心数学模型金兹堡-朗道方程(GLE)描述了光脉冲在增益介质中的演化规律,采用分步傅里叶方法(SSFM)可高效求解这类非线性偏微分方程。该技术在光纤激光器设计、高速光通信系统优化等领域具有重要价值,特别是在需要高能量脉冲保持稳定传输的场景。MATLAB数值仿真为理解DSR物理机制提供了直观工具,通过参数扫描可验证脉冲能量与宽度的线性关系特征,并为实际器件设计提供预测依据。

weixin_31240035的博客 257

配置 HTTP 代理 (HTTP proxy)

配置 HTTP 代理 (HTTP proxy)

程永强 1万+

进芯AVP28335烧录避坑全记录:CCS、Uniflash、C2Prog、SDFlash四大工具配置详解

本文详细解析了进芯AVP28335芯片在烧录过程中遇到的常见问题及解决方案,涵盖CCS、Uniflash、C2Prog和SDFlash四大工具的配置要点。针对国产器件AVP28335的特殊需求,提供了从开发环境准备到烧录验证的全流程指南,帮助开发者高效完成程序烧录,避免常见陷阱。

weixin_30836759的博客 589

[GO]HTTP 请求实例(GET)以及设置代理

GO语言在Bee框架下的应用,前台Ajax的后台HTTP请求

zjgdtl的专栏 3840

AI 技术新手入门与实战指南

仅仅能对话还不够,实际应用中,我们往往需要让 AI 处理特定的业务数据。比如,从日志文件中提取错误码,或者将非结构化的用户反馈整理成 JSON 格式。这时候,自定义输入和严格的结果验证就显得尤为重要。假设我们需要让 AI 分析一段服务器日志,并只返回错误的级别和简述。请分析以下日志片段,提取所有 ERROR 级别的信息。要求输出格式为 JSON 列表,包含 'timestamp' 和 'message' 两个字段。不要输出任何多余的解释文字。日志内容: {

2600_94936330的博客 2680

高性能优化的本质

在很早之前,处理器性能的提升一般是通过减小元器件的尺寸,增加元器件的数量,提高主频来实现,这也是摩尔定律所说的,但是由于功耗的影响,主频不能一直增加。后来,由于英伟达的GPU的并行计算的出现,逐渐打破摩尔定律,人们利用多核,SIMD,SIMT来处理大量相同计算的数据,这极大的提高了效率。计算机的算力得到了巨大的提升,但是并行是困难的,对于有数据依赖的程序来说,处理并行是一件及其困难的事,但对于一些简单的数学库的计算,并行的实现相对简单。

发狂的小花的博客 274

论述Android通过HttpURLConnection与HttpClient联网代理网关设置

Android联网主要使用HttpURLConneciton和HttpClient进行联网,在手机联网的时候,我们优先选择wifi网络,其次在选择移动网络,这里所述移动网络主要指cmwap。 大家都知道cmwap连接需要设置代理地址和端口,那么,android程序中如何设置代理呢?这是个问题。 HttpURLConnection设置代理 1 //当我...

weixin_34297300的博客 135

python全栈入门到实战【基础篇 01】Python初识:定位、优势与发展历程

本文介绍了热门编程语言Python。它是解释型高级语言,具通用、入门友好、胶水型特点,以简洁易读为设计哲学。优势包括语法简洁高效、生态庞大、跨平台、社区活跃、应用广泛、门槛低。发展历经诞生(1989-1994,吉多创建,1994年1.0发布)、成长(版本迭代,3.0发布)、崛起(Web与大数据推动)、爆发(AI浪潮助推)及持续迭代阶段。

那些看似不起波澜的日复一日,会在某天让你看到坚持的意义 1万+

[备忘]适配Android M 将HttpClient替换为HttpUrlConnection相关资料

1. 官方文档 Android 6.0 Changes HttpURLConnection 2. HttpClient与HttpUrlConnection使用方式对比与代理设置 HttpClient与HttpUrlConnection 论述Android通过HttpURLConnection与HttpClient联网代理网关设置 3. 特殊问题 How

lisanyilisanyi的博客 546

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

使用HTTP代理发送GET请求

但是,无论使用哪种语言或库,基本的步骤都是相似的:创建一个HTTP客户端对象,设置代理服务器和请求参数,然后调用相应的方法来发送GET请求。HTTP代理服务器是一个位于客户端和目标服务器之间的服务器,它接收客户端的请求,然后代表客户端向目标服务器发送请求,并将目标服务器的响应返回给客户端。它用于从指定的资源请求数据。例如,如果代理服务器需要身份验证,我们需要在请求中包含相应的认证信息,如用户名和密码。接下来,在编写代码发送GET请求时,我们需要将代理服务器的IP地址和端口号作为参数传递给HTTP客户端库。

weixin_73725158的博客 605

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

httpclient

HttpClient 是Apache Jakarta Common 下的子项目,可以用来提供高效的、最新的、功能丰富的支持 HTTP 协议的客户端编程工具包,并且它支持 HTTP 协议最新的版本和建议。

qq_42847719的博客 2283

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

Android 网络编程实现代理访问

Android网络编程实现代理访问

qq_23921815的博客 1886
上一篇: android发送http请求
下一篇: 【全】Android官网MediaPlayer章节翻译与总结(上)
Remember2
博客等级 码龄15年 4粉丝 8原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值