java.lang.IllegalArgumentException:protocol = http host = null

时间:2014-09-03 10:35:03

标签: java url apache-tika

对于这个链接http://bits.blogs.nytimes.com/2014/09/02/uber-banned-across-germany-by-frankfurt-court/?partner=rss&emc=rss,这段代码不起作用,但如果我把另一个代码作为例子:https://www.google.com一切正常:

    URL url = new URL("http://bits.blogs.nytimes.com/2014/09/02/uber-banned-across-germany-by-frankfurt-court/?partner=rss&emc=rss");
        URLConnection uc;
    uc = url.openConnection();
    uc.setRequestProperty("User-Agent", "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_7; en-US) AppleWebKit/534.16 (KHTML, like Gecko) Chrome/10.0.648.205 Safari/534.16");
    uc.addRequestProperty("referer", "http://www.facebook.com");
    uc.connect();     

    this.input = uc.getInputStream();

我得到了这个例外:

java.lang.IllegalArgumentException: protocol = http host = null
    at sun.net.spi.DefaultProxySelector.select(DefaultProxySelector.java:170)
    at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:926)
    at sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:850)
    at sun.net.www.protocol.http.HttpURLConnection.followRedirect(HttpURLConnection.java:2398)
    at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1557)
    at UrlParser.<init>(UrlParser.java:48)
    at TikaParser.test_url_parser(TikaParser.java:186)
    at TikaParser.run(TikaParser.java:256)
    at java.lang.Thread.run(Thread.java:745)

我的代码出了什么问题?

3 个答案:

答案 0 :(得分:25)

当网址以http:/而不是http://开头时,我遇到了同样的异常。例如http:/www.example.com

这是org.springframework.web.client.RestTemplate.exchange()方法,因此上下文不完全相同,但可能是类似问题。

答案 1 :(得分:0)

看起来您的代理主机未设置。尝试设置它,然后它应该工作。

有关代理属性的详细信息,请参阅this page

答案 2 :(得分:0)

大多数此错误是由于网址错误引起的。确保您输入的网址正确无误。正如前面提到的wsams一样,请尝试检查网址中的//是否正确。 正确的格式是http://localhost:8080