2011-12-13 75 views
1

我试图构建一个连接到网站的groovy脚本。网络地址以非标准格式结尾.abcWindows上的Groovy URL UnknownHostException

我有这段代码在Linux机器上工作,现在我将它移动到Windows机器上。 Windows盒子会抛出UnknownHostException并失败。该网站在Linux和Windows上的浏览器中都会呈现。

def url = 'http://www.testURL.abc' 
def connection = new URL(url).openConnection() 
if (connection.responseCode != 200) 
    <<Error Handling>> 

我认为它可能是一个代理问题,因为Windows和Linux系统使用不同的代理服务器进行连接。我研究了这一点,并在每个盒子上配置了Java,以使用浏览器的代理,这也没有任何帮助。在这一点上,我有点卡住了。任何帮助将不胜感激。

编辑*两个代理服务器使用自动配置脚本(的.pac文件) **更新语法错误抄袭他们在

+0

一无所知您发布是正确的示例代码。 'www.textURL.abc'不是一个有效的完整URL,因为没有协议(例如:'http'),也没有端口 - 你需要指定一个或另一个来建立连接。其次,'String'上没有'openConnection()',所以这一行无法编译。请提供一个有效的代码示例。 – OverZealous

回答

0

我最终找到通过代理问题的解决方案。我必须下载自动配置脚本(.pac文件)并找出哪个代理主机和端口用于我的URL。

我必须设置代理主机和端口用下面的代码:

ProxySelector.setDefault(new ProxySelector() { 

    @Override 
    public void connectFailed(URI uri, SocketAddress sa, IOException ioe) { 
     throw new RuntimeException("Proxy connect failed", ioe); 
    } 

    @Override 
    public List select(URI uri) { 
     return Arrays 
      .asList(new Proxy(Proxy.Type.HTTP, 
           new InetSocketAddress(proxyHost, 
                proxyPort))); 
    } 
}); 

这是从unknown host exception