JAVA HTTP请求 常用的代理设置
由于公司上网实行代理机制,
而最近一段时间又在研究Web上的OpenApi。
没办法一定要使用代理,我之前有文章介绍了httpclient的代理使用方式,
这里介绍基本java的代理使用方式。
最常使用的全局配置代理。
- Properties prop = System.getProperties();
- // HTTP代理的IP设置
- prop.setProperty("http.proxyHost", "10.28.0.254");
- // HTTP代理的端口设置
- prop.setProperty("http.proxyPort", "80");
- //这里也可以设置不需要使用代理的地址
- prop.setProperty("http.nonProxyHosts", "localhost|10.28.0.*");
- //设置HTTPS安全访问的代理服务器地址与端口
- prop.setProperty("https.proxyHost", "10.28.0.254");
- prop.setProperty("https.proxyPort", "443");
- //对于安全访问的过滤地址属性同样是http.nonProxyHosts并没有https.nonProxyHosts
- //FTP的代理设置入下
- prop.setProperty("ftp.proxyHost", "192.168.0.254");
- prop.setProperty("ftp.proxyPort", "2121");
- prop.setProperty("ftp.nonProxyHosts", "localhost|192.168.0.*");
- //SOCKS的代理设置
- prop.setProperty("socksProxyHost", "192.168.0.254");
- prop.setProperty("socksProxyPort", "8000");
有时代理需要进行身份验证 此时我们需要自己定义一个继承类Authenticator的类
- public class MyAuthenticator extends Authenticator {
- private String username = "";
- private String password = "";
- public MyAuthenticator(String username, String password) {
- this.username = username;
- this.password = password;
- }
- protected PasswordAuthentication getPasswordAuthentication() {
- returnnew PasswordAuthentication(username, password.toCharArray());
- }
- }
- //设置登陆到代理服务器的用户名和密码
- Authenticator.setDefault(new MyAuthenticator("userName", "Password"));
当然此种方法可以满足大部分的需求 但是有一定的局限行,
就是所有的连接通过统一属性进行代理配置的,不能对特定连接进行代理配置。
JDK5及其之后版本引入新的代理配置,可以满足对特定连接进行配置
- URL url = new URL("http://www.shanhe114.com");
- //创建代理服务器
- InetSocketAddress addr = new InetSocketAddress("10.28.0.4",
- 8080);
- //Proxy proxy = new Proxy(Proxy.Type.SOCKS, addr); //SOCKS代理
- Proxy proxy = new Proxy(Proxy.Type.HTTP, addr); //HTTP代理
- //其他方式可以见Proxy.Type属性
- URLConnection conn = url.openConnection(proxy);
- InputStream in = conn.getInputStream();
- //InputStream in = url.openStream();
- String content = IOUtils.toString(in);
- System.out.println(content);
JAVA HTTP请求 常用的代理设置的更多相关文章
- Java如何查找系统的代理设置?
在Java编程中,如何查找系统的代理设置? 以下示例显示如何使用HttpURLConnection类的systemSetting()方法和getResponse()方法的put方法在系统上查找代理设置 ...
- JAVA发送http GET/POST请求的两种方式+JAVA http 请求手动配置代理
java发送http get请求,有两种方式. 第一种用URLConnection: public static String get(String url) throws IOException { ...
- React网络请求跨域代理设置
之前的之所以可以请求其他域名下的网络数据,是因为我们在服务端设置了相关配置,如下所示 如果将其注释掉,再次测试,如下所示 此时便无法跨域操作,接下来介绍下React如何实现跨域代理 (1)分析 Rea ...
- 接口测试——HttpClient工具的https请求、代理设置、请求头设置、获取状态码和响应头
目录 https请求 代理设置 请求头设置 获取状态码 接收响应头 https请求 https协议(Secure Hypertext Transfer Protocol) : 安全超文本传输协议, H ...
- Fiddler之常用操作(过滤器设置,代理设置,手机抓包设置,手机代理配置)
记录下,工作中常用的一些设置和操作~ 1.过滤“脏”请求 两个下拉框的名词解释: A.内外网过滤 No Zone Filter:不分区域过滤(内网外网都显示) Show only Intranet H ...
- Idea代理设置与Java程序的代理设置
最近在学习WebService的过程中,为了弄清楚发送和接收的包的数据结构,使用Fiddler抓取包的数据.开始先配置了Idea的代理设置,但执行Java代码发送请求时,依然无法在Fiddler中抓取 ...
- java 微信开发 常用工具类(xml传输和解析 json转换对象)
与微信通信常用工具(xml传输和解析) package com.lownsun.wechatOauth.utl; import java.io.IOException; import java.io. ...
- 基于jsoup的Java服务端http(s)代理程序-代理服务器Demo
亲爱的开发者朋友们,知道百度网址翻译么?他们为何能够翻译源网页呢,iframe可是不能跨域操作的哦,那么可以用代理实现.直接上代码: 本Demo基于MVC写的,灰常简单,copy过去,简单改改就可以用 ...
- ProxyHandler处理器(代理设置)
很多网站会检测某一段时间某个IP的访问次数(通过流量统计,系统日志等),如果访问的次数多得不像正常人,它会禁止这个IP的访问. 所以我们可以设置一些代理服务器,每个一段时间换一个代理,就算IP被禁止, ...
随机推荐
- 基于IHttpAsyncHandler的TCP收发器
上一篇文章中,我们提到使用IHttpAsyncHandler来进行UDP的收发操作.由于UDP模型比较简单,所以运行没什么问题.这一篇我主要是使用IHttpAsyncHandler来进行TCP的收发操 ...
- JS 之高级函数
作用域安全的构造函数 当使用new调用构造函数时,构造函数内部this对象会指向新创建的对象实例.如果不使用new,直接调用的话,则this对象会映射到window对象上.所以需要判断下. eg: f ...
- JS实现颜色值的转换
从网上看了个案例,是实现颜色值转换的,就想着自己也写个.网上的案例链接找不到了,这里也就不贴了. JavaScript颜色转换的核心就是进制间的转换. rgba(0,0,0,.4)转换成#000000 ...
- android 6.0(api 23) SDK,不再提供org.apache.http.*(只保留几个类)
在使用android-async-http的时候我的apl 更新到了23,我的build version也是23的时候出现了,org.apache.http.Header这个类找不到的情况,原因是在a ...
- 从0开始学Java——@override的作用
早上跟着<jsp&Servlet学习笔记>来学习jsp,在使用eclipse创建了一个servlet类之后,发现自动创建的类和书上相比,doGet方法的前面少了@override, ...
- [CareerCup] 9.4 Subsets 子集合
9.4 Write a method to return all subsets of a set. LeetCode上的原题,请参见我之前的博客Subsets 子集合和Subsets II 子集合之 ...
- IOS开发之——类似微信摇一摇的功能实现
首先,一直以为摇一摇的功能实现好高大上,结果百度了.我自己也模仿写了一个demo.主要代码如下: 新建一个项目,名字为AnimationShake. 主要代码: - (void)motionBegan ...
- DLL中调用约定和名称修饰(一)
DLL中调用约定和名称修饰(一) 调用约定(Calling Convention)是指在程序设计语言中为了实现函数调用而建立的一种协议.这种协议规定了该语言的函数中的参数传送方式.参数是否可变和由谁来 ...
- xsd、wsdl生成C#类的命令行工具使用方法
1.xsd生成C#类命令 示例:xsd <xsd文件路径> /c /o:<生成CS文件目录> <其他参数> 参数说明: /c 生成为cs文件,/d 生成DataSe ...
- [c#基础]集合foreach的必要条件和自定义集合
引言 最近翻看了之前的学习笔记,看到foreach,记得当时老师讲的时候,有点犯浑,不是很明白,这好比,上小学时,你不会乘法口诀,但是随着时间的增长,你不自觉的都会了,也悟出个小道理,有些东西,你当时 ...