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

保姆级教程:在Ubuntu 22.04上,用Chroot和xorriso定制你的专属服务器镜像(附离线包集成) 本文提供了一份详细的Ubuntu 22.04离线镜像定制教程,通过Chroot环境和xorriso工具,帮助用户打造专属服务器镜像。教程涵盖环境准备、镜像解构、系统定制、镜像重组与验证等全流程,特别适合需要在隔离网络环境中批量部署服务器的场景。 阅读详情

转载自: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. }  

python基础之语言发展历史 博主简介:原互联网大厂tencent员工,网安巨头Venustech员工,阿里云开发社区专家博主,微信公众号java基础笔记优质创作者,csdn优质创作博主,创业者,知识共享者,欢迎关注,点赞,收藏。 目录一、前言二、发展历史1、Python是一种面向对象的解释型编程语言2、Python常被称为胶水语言3、Python由Guido开发4、Python连续多年入选编程语言TOP105、Python的发展历史三、总结 一、前言   由于Python语言的简洁性、易读性以及可扩展性,它在网络爬虫、数据分析、. 阅读详情

相关推荐

OpenClaw智能体应用第一集--飞书多智能体配置

本文介绍了智能体(Agent)的核心概念与配置实践。Agent作为独立作用域的"大脑",包含模型(认知引擎)、记忆系统(短期/长期记忆)、人设(角色定义)、工具(外部能力调用)、规划执行(任务拆解)、运行环境等核心要素。每个Agent拥有唯一agentId标识,通过accountId区分渠道账号,Binding机制实现消息路由。实践部分展示了通过命令行配置多个智能体(如writer)的过程,包括插件注册和工具加载。系统支持多Agent架构,可根据不同场景需求灵活配置专属智能体。

weixin_44626085的博客 1746

java http请求设置代理 Proxy

java http 代理方式

qq_38653981的博客 1万+

抽象代数学习笔记(抽象代数的历史、运算)

1. 抽象代数历史 对于五次及以上的代数方程是否存在根式解这个问题,欧拉、拉格朗日、高斯等数学家都没得到答案,但是他们得出五次及以上的代数方程组不存在根式解的结论。19世纪初,阿贝尔提出五次及以上的代数方程不存在根式解,并找出一类特殊的五次及以上的代数方程可以用根式解表示出来。另外一个年轻的数学家伽罗华...

huangzhpei的博客 3668

HttpUrlConnection网络连接

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

To_be_Designer 1768

Cisco Packet Tracert 无线路由器配置

Cisco Packet Tracert 无线路由器配置

yushan_caoyu的博客 2万+

BAPI_OUTB_DELIVERY_CHANGE扩展指南:利用EXTENSION2与SMOD_V50B0001实现自定义字段更新

本文详细解析了如何利用BAPI_OUTB_DELIVERY_CHANGE的EXTENSION2参数与增强点SMOD_V50B0001,在不修改标准代码的前提下,安全、标准地更新SAP交货单的自定义字段。通过清晰的步骤指南和实战代码示例,帮助开发者掌握通过增强字段实现定制化业务需求的完整流程与调试技巧。

fanta的博客 451

配置 HTTP 代理 (HTTP proxy)

配置 HTTP 代理 (HTTP proxy)

程永强 1万+

Unity 常见问题 之 打包编译的报错 Unable to sign the application; please provide passwords!

Unity 常见问题 之 打包编译的报错 Unable to sign the application; please provide passwords! 目录 Unity 常见问题 之 打包编译的报错 Unable to sign the application; please provide passwords! 一、简单介绍 二、问题描述 三、原因分析 四、可能的解决方法 方法一:取消 Keystore 设置即可 方法二:重新添加 Keystore 相关设置 一...

仙魁XAN 1万+

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

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

zjgdtl的专栏 3840

大数据在电力行业的应用案例解析 -【电力技术】(十)电力数字化运营与大数据精准服务体系建设

电力数字化运营,是大数据在电力行业从技术场景走向业务价值的最终落点。它以数据为纽带,将用户、设备、服务、收益、风险全部纳入统一闭环,实现从 “管好电” 向 “运营好能源资产” 升级。在新型电力系统与市场化改革双重驱动下,谁能用好数据、建好闭环、做好运营,谁就能在服务、成本、效益、安全上建立长期优势。

getusushu的博客 69

在hyper-v管理器中修改WSL虚拟交换机后,打开wsl闪退

此次是因为修改了WSL虚拟交换机造成的wsl打不开或闪退,还有一种可能是关闭了hyper-v造成了wsl。

DN金猿的博客 1172

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

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

weixin_34297300的博客 135

开发simulink 以及stm32半物理仿真碰到的问题,以及处理方法,Error:External Mode Open Protocol Connect command failed(实测有用)

串口实现的,但是在测试的时候发现,这个串口可以正常发送和接收数据,但是一旦把这个串口只让其进行版物理仿真就报错。直接刷写程序是可以的,最后查到问题了。我要实现半物理仿真,就是通过matlab实现可以直接控制stm32板子,实际上是通过xcp on。然后点击simulink上的观测按钮就可以直接和stm32平台进行通讯了。3,还是使用串口3,但是重新需要设置一下com口,因为重新插拔了一下,按照这个设置方法就可以。2,重新加载ioc文件。

pvmsmfchcs的博客 1499

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

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

lisanyilisanyi的博客 546

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

使用HTTP代理发送GET请求

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

weixin_73725158的博客 605

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

httpclient

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

qq_42847719的博客 2283

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

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、付费专栏及课程。

余额充值