热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

HttpURLConnection和httpclient添加代理IP和端口

*代理设置*HttpClienthttpclientnewDefaultHttpClient();HttpHostproxynewHttpHost(System.getProp

/*代理设置*/
HttpClient httpclient = new DefaultHttpClient();
HttpHost proxy = new HttpHost(System.getProperty("http.proxyHost"), Integer.valueOf(System.getProperty("http.proxyPort")));
httpclient.getParams().setParameter(ConnRoutePNames.DEFAULT_PROXY, proxy);


/*代理设置*/-
/*注意引入的类必须是-org.apache.http.HttpHost*/
Proxy proxy = new Proxy(java.net.Proxy.Type.HTTP,new InetSocketAddress(System.getProperty("http.proxyHost"), Integer.valueOf(System.getProperty("http.proxyPort"))));
HttpURLConnection httpURLCOnnection= (HttpURLConnection) url.openConnection(proxy);





我的测试方法是放到外网服务器测试的,通过代理向微信发送信息,下面的方法涉及一些基础信息没有呈现,关键是几个关键语句,有这些关键语句即可。


此外,可以将一些信息添加到tomcat数据库的catalina.sh文件中

就可以不在程序中写死代理IP了

JAVA_OPTS="-server -Xms512m -Xmx512m -XX:PermSize=64M -XX:MaxPermSize=128m "
JAVA_OPTS="$JAVA_OPTS -Dhttp.proxySet=true "

JAVA_OPTS="$JAVA_OPTS -Dhttp.proxyHost=代理IP
JAVA_OPTS="$JAVA_OPTS -Dhttp.proxyPort=代理端口



Proxy proxy = new Proxy(java.net.Proxy.Type.HTTP,new InetSocketAddress(System.getProperty("http.proxyHost"),  Integer.valueOf(System.getProperty("http.proxyPort"))));         




我的程序是写死的,这样便于大家借鉴

public String test() throws IOException{

String url="https://api.weixin.qq.com/cgi-bin/menu/get?access_token="+access_token;
URL getUrl = new URL(url);
// 根据拼凑的URL,打开连接,URL.openConnection函数会根据URL的类型,
// 返回不同的URLConnection子类的对象,这里URL是一个http,因此实际返回的是HttpURLConnection
Proxy proxy = new Proxy(java.net.Proxy.Type.HTTP,new InetSocketAddress("代理IP", 8080)); //关键语句


HttpURLConnection cOnnection= (HttpURLConnection) getUrl.openConnection(proxy); //关键语句
// 进行连接,但是实际上get request要在下一句的connection.getInputStream()函数中才会真正发到
// 服务器
connection.setConnectTimeout(25000);//关键语句
connection.setReadTimeout(25000);//关键语句
connection.connect(); //关键语句

// 取得输入流,并使用Reader读取
BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream(),"utf-8"));
String lines;
String jsOnString= "";
while ((lines = reader.readLine()) != null) {
jsOnString= jsonString + lines;
}


reader.close();
// 断开连接
connection.disconnect();
System.out.println("微信返回的json串" + jsonString);
ActionContext ctx = ActionContext.getContext();
HttpServletRequest request = (HttpServletRequest)ctx.get(ServletActionContext.HTTP_REQUEST);
HttpServletResponse respOnse= (HttpServletResponse)ctx.get(ServletActionContext.HTTP_RESPONSE);
jsOnString=jsonString.replace("<", "<");
jsOnString=jsonString.replace(">", ">");
request.setAttribute("str",jsonString);
request.setAttribute("str2", "系统没问题");

return "success";
}


/*代理设置*/
HttpClient httpclient = new DefaultHttpClient();
HttpHost proxy = new HttpHost(System.getProperty("http.proxyHost"), Integer.valueOf(System.getProperty("http.proxyPort")));
httpclient.getParams().setParameter(ConnRoutePNames.DEFAULT_PROXY, proxy);




//原来的语句
//HttpURLConnection httpURLCOnnection= (HttpURLConnection) url.openConnection();


/*代理设置*/-
/*注意引入的类必须是-org.apache.http.HttpHost*/
Proxy proxy = new Proxy(java.net.Proxy.Type.HTTP,new InetSocketAddress(System.getProperty("http.proxyHost"), Integer.valueOf(System.getProperty("http.proxyPort"))));
HttpURLConnection httpURLCOnnection= (HttpURLConnection) url.openConnection(proxy);


推荐阅读
  • Spring源码解密之默认标签的解析方式分析
    本文分析了Spring源码解密中默认标签的解析方式。通过对命名空间的判断,区分默认命名空间和自定义命名空间,并采用不同的解析方式。其中,bean标签的解析最为复杂和重要。 ... [详细]
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • 本文介绍了通过ABAP开发往外网发邮件的需求,并提供了配置和代码整理的资料。其中包括了配置SAP邮件服务器的步骤和ABAP写发送邮件代码的过程。通过RZ10配置参数和icm/server_port_1的设定,可以实现向Sap User和外部邮件发送邮件的功能。希望对需要的开发人员有帮助。摘要长度:184字。 ... [详细]
  • 标题: ... [详细]
  • 利用Visual Basic开发SAP接口程序初探的方法与原理
    本文介绍了利用Visual Basic开发SAP接口程序的方法与原理,以及SAP R/3系统的特点和二次开发平台ABAP的使用。通过程序接口自动读取SAP R/3的数据表或视图,在外部进行处理和利用水晶报表等工具生成符合中国人习惯的报表样式。具体介绍了RFC调用的原理和模型,并强调本文主要不讨论SAP R/3函数的开发,而是针对使用SAP的公司的非ABAP开发人员提供了初步的接口程序开发指导。 ... [详细]
  • 本文介绍了如何使用C#制作Java+Mysql+Tomcat环境安装程序,实现一键式安装。通过将JDK、Mysql、Tomcat三者制作成一个安装包,解决了客户在安装软件时的复杂配置和繁琐问题,便于管理软件版本和系统集成。具体步骤包括配置JDK环境变量和安装Mysql服务,其中使用了MySQL Server 5.5社区版和my.ini文件。安装方法为通过命令行将目录转到mysql的bin目录下,执行mysqld --install MySQL5命令。 ... [详细]
  • 本文介绍了在Linux下安装和配置Kafka的方法,包括安装JDK、下载和解压Kafka、配置Kafka的参数,以及配置Kafka的日志目录、服务器IP和日志存放路径等。同时还提供了单机配置部署的方法和zookeeper地址和端口的配置。通过实操成功的案例,帮助读者快速完成Kafka的安装和配置。 ... [详细]
  • 移动端常用单位——rem的使用方法和注意事项
    本文介绍了移动端常用的单位rem的使用方法和注意事项,包括px、%、em、vw、vh等其他常用单位的比较。同时还介绍了如何通过JS获取视口宽度并动态调整rem的值,以适应不同设备的屏幕大小。此外,还提到了rem目前在移动端的主流地位。 ... [详细]
  • 图像因存在错误而无法显示 ... [详细]
  • 如何在HTML中获取鼠标的当前位置
    本文介绍了在HTML中获取鼠标当前位置的三种方法,分别是相对于屏幕的位置、相对于窗口的位置以及考虑了页面滚动因素的位置。通过这些方法可以准确获取鼠标的坐标信息。 ... [详细]
  • centos安装Mysql的方法及步骤详解
    本文介绍了centos安装Mysql的两种方式:rpm方式和绿色方式安装,详细介绍了安装所需的软件包以及安装过程中的注意事项,包括检查是否安装成功的方法。通过本文,读者可以了解到在centos系统上如何正确安装Mysql。 ... [详细]
  • Activiti7流程定义开发笔记
    本文介绍了Activiti7流程定义的开发笔记,包括流程定义的概念、使用activiti-explorer和activiti-eclipse-designer进行建模的方式,以及生成流程图的方法。还介绍了流程定义部署的概念和步骤,包括将bpmn和png文件添加部署到activiti数据库中的方法,以及使用ZIP包进行部署的方式。同时还提到了activiti.cfg.xml文件的作用。 ... [详细]
  • MySQL数据库锁机制及其应用(数据库锁的概念)
    本文介绍了MySQL数据库锁机制及其应用。数据库锁是计算机协调多个进程或线程并发访问某一资源的机制,在数据库中,数据是一种供许多用户共享的资源,如何保证数据并发访问的一致性和有效性是数据库必须解决的问题。MySQL的锁机制相对简单,不同的存储引擎支持不同的锁机制,主要包括表级锁、行级锁和页面锁。本文详细介绍了MySQL表级锁的锁模式和特点,以及行级锁和页面锁的特点和应用场景。同时还讨论了锁冲突对数据库并发访问性能的影响。 ... [详细]
  • 本文介绍了关系型数据库和NoSQL数据库的概念和特点,列举了主流的关系型数据库和NoSQL数据库,同时描述了它们在新闻、电商抢购信息和微博热点信息等场景中的应用。此外,还提供了MySQL配置文件的相关内容。 ... [详细]
author-avatar
踏实小青年
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有