当前位置: 首页 > 面试题库 >

使用Java检测Windows / IE代理设置

幸经艺
2023-03-14
问题内容

我需要自动检测用户是否需要代理才能访问互联网。Java应用程序是否可以读取系统代理设置?

谢谢,吉米


问题答案:

Java SE
1.5提供了ProxySelector类来检测代理设置。如果存在与Internet的直接连接,则代理类型将为DIRECT,否则它将返回主机和端口。

下面的示例说明了此功能:

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 TestProxy {

    public static void main(String[] args) {
        try {
            System.setProperty("java.net.useSystemProxies","true");
            List<Proxy> l = ProxySelector.getDefault().select(
                        new URI("http://www.yahoo.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();
        }
    }
}


 类似资料:
  • 问题内容: 我确实看到了有关为JVM设置代理的问题,但我想问的是人们如何利用已经配置的代理(在Windows上)。 这是我的问题的演示: 转到控制面板-> Java并设置代理地址。 运行以下简单的小程序代码(我正在使用Eclipse IDE): 无论您在Java控制面板中进行的设置如何,Applet均显示“无”。如果可以确定Windows代理设置(通常在Internet Explorer中设置),

  • 第三种,也是争议最大的一种客户端检测技术叫做用户代理检测。用户代理检测通过检测用户代理字符串来确定实际使用的浏览器。在每一次HTTP 请求过程中,用户代理字符串是作为响应首部发送的,而且该字符串可以通过JavaScript 的navigator.userAgent 属性访问。在服务器端,通过检测用户代理字符串来确定用户使用的浏览器是一种常用而且广为接受的做法。而在客户端,用户代理检测一般被当作一种

  • 本文向大家介绍Powershell小技巧之设置IE代理,包括了Powershell小技巧之设置IE代理的使用技巧和注意事项,需要的朋友参考一下 IE的代理设置位于注册表中:”HKCU:\Software\Microsoft\Windows\CurrentVersion\Internet Settings”下。关键键值为ProxyEnable和ProxyServer。所以通过更改注册表即可完成IE代

  • Windows 7 Java 1.8.0_45 月食火星 如果将系统代理设置为HTTP,则下面的代码仅在从java应用程序的方法运行时才会打印。

  • 问题内容: 这可能是一个愚蠢的问题,但是我想使用Modernizr JS库检测一些浏览器属性,以确定要显示或不显示什么内容。 我有一个名为Pano2VR的应用程序,它可以同时输出HTML5和SWF。我需要用于iOS设备用户的HTML5。 但是,IE根本不呈现此“ HTML5”输出。看来他们的输出使用CSS3 3D变换和WebGL,IE9中显然不支持一种或多种。 因此,对于那些用户,我需要显示Fla

  • 我试图从用户代理字符串中检测“桌面”、“移动设备”和“平板电脑”。我需要的只是这三个粗略的分类。不需要品牌和设备名称。我有一些用户代理的例子: “Mozilla/5.0(兼容;MSIE 10.0;Windows NT 6.1;WOW64;Trident/6.0;SLCC2;.NET CLR 2.0.50727;.NET CLR 3.5.30729;.NET CLR 3.0.30729;Media