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被禁止, ...
随机推荐
- ZooKeeper学习第四期---构建ZooKeeper应用
一.配置服务 配置服务是分布式应用所需要的基本服务之一,它使集群中的机器可以共享配置信息中那些公共的部分.简单地说,ZooKeeper可以作为一个具有高可用性的配置存储器,允许分布式应用的参与者检索和 ...
- warning: LF will be replaced by CRLF
一. Git提供了一个换行符检查功能(core.safecrlf),可以在提交时检查文件是否混用了不同风格的换行符.这个功能的选项如下: false - 不做任何检查warn - 在提交时检查并警告t ...
- TPLINK GPL code 简要分析
从TPLINK官网下载了GPL code,下载后文件名是wr841nv9_en_gpl.tar.gz, 但是无论是linux还是windows下解压都提示压缩包有问题,不过还是可以解压出完整的目录的. ...
- 20145215《Java程序设计》实验一实验报告
实验一 Java开发环境的熟悉 实验内容及步骤 使用JDK编译.运行简单的Java程序 命令行下程序开发: 在命令行下建立实验目录,进入该目录后创建exp1目录 敲入以下代码: package exp ...
- Cocopod上更新上传自己的开源框架供别人下载
为了更方便的集成第三方框架有了cocopods 的, 当我们有了相对比较好的框架的时候如何更新到cocopods 供他人参考呢? 下面我一步一步带大家开源自己的框架. 第一步 把自己的框架更新到git ...
- So... what's up?
So... testing markdown editor what to learn in May? html5 canvas api codeigniter framework var test ...
- Linux下高频命令分类辑录(基本使用篇)
本文目的:总结linux下常用命令的基本使用方法 文件权限: 文档权限设置命令:chmod 数字模式: 文档权限由-rwxrwxrwx十个字符组成,其中第一个代表文档类型,后面九个字符按照顺序分为三组 ...
- js的各种继承
请先看这个链接:https://segmentfault.com/a/1190000002440502 还有一个里边有js的采用临时方法的继承 http://javapolo.iteye.com/bl ...
- DateTime类常用技巧摘录
//今天 DateTime.Now.Date.ToShortDateString(); //昨天,就是今天的日期减一 DateTime.Now.AddDays(-).ToShortDateString ...
- SequoiaDB 系列之七 :源码分析之catalog节点
这一篇紧接着上一篇SequoiaDB 系列之六 :源码分析之coord节点来讲 在上一篇中,分析了coord转发数据包到catalog节点(也有可能是data节点,视情况而定).这一次,我们继续分析上 ...