由于公司上网实行代理机制, 
而最近一段时间又在研究Web上的OpenApi。 
没办法一定要使用代理,我之前有文章介绍了httpclient的代理使用方式, 
这里介绍基本java的代理使用方式。 
最常使用的全局配置代理。

  1. Properties prop = System.getProperties();
  2. // HTTP代理的IP设置
  3. prop.setProperty("http.proxyHost", "10.28.0.254");
  4. // HTTP代理的端口设置
  5. prop.setProperty("http.proxyPort", "80");
  6. //这里也可以设置不需要使用代理的地址
  7. prop.setProperty("http.nonProxyHosts", "localhost|10.28.0.*");
  8. //设置HTTPS安全访问的代理服务器地址与端口
  9. prop.setProperty("https.proxyHost", "10.28.0.254");
  10. prop.setProperty("https.proxyPort", "443");
  11. //对于安全访问的过滤地址属性同样是http.nonProxyHosts并没有https.nonProxyHosts
  12. //FTP的代理设置入下
  13. prop.setProperty("ftp.proxyHost", "192.168.0.254");
  14. prop.setProperty("ftp.proxyPort", "2121");
  15. prop.setProperty("ftp.nonProxyHosts", "localhost|192.168.0.*");
  16. //SOCKS的代理设置
  17. prop.setProperty("socksProxyHost", "192.168.0.254");
  18. prop.setProperty("socksProxyPort", "8000");

有时代理需要进行身份验证 此时我们需要自己定义一个继承类Authenticator的类

  1. public class MyAuthenticator extends Authenticator {
  2. private String username = "";
  3. private String password = "";
  4. public MyAuthenticator(String username, String password) {
  5. this.username = username;
  6. this.password = password;
  7. }
  8. protected PasswordAuthentication getPasswordAuthentication() {
  9. returnnew PasswordAuthentication(username, password.toCharArray());
  10. }
  11. }
  12. //设置登陆到代理服务器的用户名和密码
  13. Authenticator.setDefault(new MyAuthenticator("userName", "Password"));

当然此种方法可以满足大部分的需求 但是有一定的局限行, 
就是所有的连接通过统一属性进行代理配置的,不能对特定连接进行代理配置。

JDK5及其之后版本引入新的代理配置,可以满足对特定连接进行配置

    1. URL url = new URL("http://www.shanhe114.com");
    2. //创建代理服务器
    3. InetSocketAddress addr = new InetSocketAddress("10.28.0.4",
    4. 8080);
    5. //Proxy proxy = new Proxy(Proxy.Type.SOCKS, addr); //SOCKS代理
    6. Proxy proxy = new Proxy(Proxy.Type.HTTP, addr); //HTTP代理
    7. //其他方式可以见Proxy.Type属性
    8. URLConnection conn = url.openConnection(proxy);
    9. InputStream in = conn.getInputStream();
    10. //InputStream in = url.openStream();
    11. String content = IOUtils.toString(in);
    12. System.out.println(content);

JAVA HTTP请求 常用的代理设置的更多相关文章

  1. Java如何查找系统的代理设置?

    在Java编程中,如何查找系统的代理设置? 以下示例显示如何使用HttpURLConnection类的systemSetting()方法和getResponse()方法的put方法在系统上查找代理设置 ...

  2. JAVA发送http GET/POST请求的两种方式+JAVA http 请求手动配置代理

    java发送http get请求,有两种方式. 第一种用URLConnection: public static String get(String url) throws IOException { ...

  3. React网络请求跨域代理设置

    之前的之所以可以请求其他域名下的网络数据,是因为我们在服务端设置了相关配置,如下所示 如果将其注释掉,再次测试,如下所示 此时便无法跨域操作,接下来介绍下React如何实现跨域代理 (1)分析 Rea ...

  4. 接口测试——HttpClient工具的https请求、代理设置、请求头设置、获取状态码和响应头

    目录 https请求 代理设置 请求头设置 获取状态码 接收响应头 https请求 https协议(Secure Hypertext Transfer Protocol) : 安全超文本传输协议, H ...

  5. Fiddler之常用操作(过滤器设置,代理设置,手机抓包设置,手机代理配置)

    记录下,工作中常用的一些设置和操作~ 1.过滤“脏”请求 两个下拉框的名词解释: A.内外网过滤 No Zone Filter:不分区域过滤(内网外网都显示) Show only Intranet H ...

  6. Idea代理设置与Java程序的代理设置

    最近在学习WebService的过程中,为了弄清楚发送和接收的包的数据结构,使用Fiddler抓取包的数据.开始先配置了Idea的代理设置,但执行Java代码发送请求时,依然无法在Fiddler中抓取 ...

  7. java 微信开发 常用工具类(xml传输和解析 json转换对象)

    与微信通信常用工具(xml传输和解析) package com.lownsun.wechatOauth.utl; import java.io.IOException; import java.io. ...

  8. 基于jsoup的Java服务端http(s)代理程序-代理服务器Demo

    亲爱的开发者朋友们,知道百度网址翻译么?他们为何能够翻译源网页呢,iframe可是不能跨域操作的哦,那么可以用代理实现.直接上代码: 本Demo基于MVC写的,灰常简单,copy过去,简单改改就可以用 ...

  9. ProxyHandler处理器(代理设置)

    很多网站会检测某一段时间某个IP的访问次数(通过流量统计,系统日志等),如果访问的次数多得不像正常人,它会禁止这个IP的访问. 所以我们可以设置一些代理服务器,每个一段时间换一个代理,就算IP被禁止, ...

随机推荐

  1. Uedit的快捷键

    Key1 自动换行_CTRL + W     这个已经不是什么新奇的功能了,就连你们最不喜欢的notepad都有了这个功能.说来也奇怪,编辑器为什么都带有这个功能呢?谁愿意自己的编辑器带有水平滚动条啊 ...

  2. Java系列: 关于HttpSessionListener的sessionDestroyed什么时候触发

    根据书本写了下面这个监听器,然后开始调试,打开一个浏览器来访问该网页,可以正常触发sessionCreated,然后关闭浏览器,发现没有触发sessionDestroyed,然后我怀疑是不是这个监听器 ...

  3. [CareerCup] 2.2 Kth to Last Element of Linked List 链表的倒数第k个元素

    2.2 Implement an algorithm to find the kth to last element of a singly linked list. 这道题让我们求链表中倒数第k个元 ...

  4. 20145208 《Java程序设计》第5周学习总结

    20145208 <Java程序设计>第5周学习总结 教材学习内容总结 语法和继承架构 异常处理关键字 第八章内容主要是对Java的异常处理,所以我先了解了一下关键字 Java的异常处理是 ...

  5. 配置sonar、jenkins进行持续审查

    本文以CentOS操作系统为例介绍Sonar的安装配置,以及如何与Jenkins进行集成,通过pmd-cpd.checkstyle.findbugs等工具对代码进行持续审查. 一.安装配置sonar ...

  6. 【MyEclipse 2015】 逆向破解实录系列【1】(纯研究)

    声明 My Eclipse 2015 程序版权为Genuitec, L.L.C所有. My Eclipse 2015 的注册码.激活码等授权为Genuitec, L.L.C及其付费用户所有. 本文只从 ...

  7. springmore-让编程更容易

    这是我多年项目的总结,并将其抽象出来,形成一个开源的项目 部分借鉴springside,将更多的实践总结进来 基于spring+ibatis+springMVC springmore-core专注于一 ...

  8. [BZOJ 2456]Mode(神奇的抵销)

    题意:求一串数的众数(保证次数的出现次数超过一半),n<=500000 很简单是不是……快拍一下不就行了吗,不超时呢=W=,不过……尼玛空间只有1M…… 于是此题就成了神题(理解成智商题= =本 ...

  9. 机器学习中的矩阵方法(附录A): 病态矩阵与条件数

    1. 病态系统 现在有线性系统: Ax = b, 解方程 很容易得到解为: x1 = -100, x2 = -200. 如果在样本采集时存在一个微小的误差,比如,将 A 矩阵的系数 400 改变成 4 ...

  10. angular的工具方法笔记(equals, HashKey)

    分别是angular脏值检测的工具方法equals和 类HashKey的使用方法 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transi ...