zoukankan      html  css  js  c++  java
  • Java如何查找系统的代理设置?

    在Java编程中,如何查找系统的代理设置?

    以下示例显示如何使用HttpURLConnection类的systemSetting()方法和getResponse()方法的put方法在系统上查找代理设置并创建代理连接。

    package com.yiibai;
    
    import java.net.HttpURLConnection;
    import java.net.URL;
    import java.util.Properties;
    import java.net.InetSocketAddress;
    import java.net.Proxy;
    import java.net.ProxySelector;
    import java.net.URI;
    
    public class FindProxySettings{
       public static void main(String s[]) throws Exception {
          try {
             Properties systemSettings = System.getProperties();
             systemSettings.put("proxySet", "true");
             systemSettings.put("http.proxyHost", "proxy.yiibai.local");
             systemSettings.put("http.proxyPort", "80");
    
             URL u = new URL("http://www.google.com");
             HttpURLConnection con = (HttpURLConnection)u.openConnection();
             System.out.println(con.getResponseCode() + " : " + con.getResponseMessage());
             System.out.println(con.getResponseCode() == HttpURLConnection.HTTP_OK);
          } catch (Exception e) {
             e.printStackTrace();
             System.out.println(false);
          }
          System.setProperty("java.net.useSystemProxies", "true");
          Proxy proxy = (Proxy) ProxySelector.getDefault().select(new URI(
             "http://www.baidu.com/")).iterator().
          next();;
          System.out.println("proxy hostname : " + proxy.type());
          InetSocketAddress addr = (InetSocketAddress)proxy.address();
    
          if (addr == null) {
             System.out.println("No Proxy");
          } else {
             System.out.println("proxy hostname : " + addr.getHostName());
             System.out.println("proxy port : " + addr.getPort());
          }
       }
    }
    
    Java

    上述代码示例将产生以下结果 -

    200 : OK
    true
    proxy hostname : HTTP
    proxy hostname : proxy.yiibai.local
    proxy port : 80
    
    Shell

    示例-2

    以下是查找系统的代理设置的另一个示例:

    package com.yiibai;
    
    import java.net.InetSocketAddress;
    import java.net.Proxy;
    import java.net.ProxySelector;
    import java.net.URI;
    import java.util.Iterator;
    import java.util.List;
    
    public class FindProxySettings2 {
        public static void main(String[] args) {
            try {
                System.setProperty("java.net.useSystemProxies", "true");
                List<Proxy> l = ProxySelector.getDefault().select(new URI("http://www.google.com/"));
    
                for (Iterator<Proxy> iter = l.iterator(); iter.hasNext();) {
                    Proxy proxy = iter.next();
                    System.out.println("proxy hostname : " + proxy.type());
                    InetSocketAddress addr = (InetSocketAddress) proxy.address();
    
                    if (addr == null) {
                        System.out.println("No Proxy");
                    } else {
                        System.out.println("proxy hostname : " + addr.getHostName());
                        System.out.println("proxy port : " + addr.getPort());
                    }
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }
    
    Java

    上述代码示例将产生以下结果 -

    proxy hostname : DIRECT
    No Proxy
  • 相关阅读:
    【转】JS模块化工具requirejs教程(二):基本知识
    【转】JS模块化工具requirejs教程(一):初识requirejs
    【转】批处理命令 For循环命令详解!
    【转】NodeJS教程--基于ExpressJS框架的文件上传
    【转】WebSocket 是什么原理?为什么可以实现持久连接?
    网页工具地址
    【转】DataURL在Web浏览器中的兼容性总结
    侯捷STL学习(一)--顺序容器测试
    strstr-strcat实现
    算法设计与分析
  • 原文地址:https://www.cnblogs.com/borter/p/9617178.html
Copyright © 2011-2022 走看看