首頁 > 資料庫 > mysql教程 > 代理设置问题引起的UnKnownHostException Jsoup执行execute()错

代理设置问题引起的UnKnownHostException Jsoup执行execute()错

WBOY
發布: 2016-06-07 16:32:25
原創
1653 人瀏覽過

执行下面的语句时抛出了UnKnownHostException异常: Response response = Jsoup.connect(path) .userAgent("Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.21 (KHTML, like Gecko) Chrome/19.0.1042.0 Safari/535.21") .timeout(10000) .execute(); [09-

javaee-2013090901

执行下面的语句时抛出了UnKnownHostException异常:

Response response = Jsoup.connect(path)
                .userAgent("Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.21 (KHTML, like Gecko) Chrome/19.0.1042.0 Safari/535.21")
                .timeout(10000)
                .execute();
登入後複製

[09-09 08:26:13.822] java.net.UnknownHostException: www.baidu.com
[09-09 08:26:13.823] 	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:195)
[09-09 08:26:13.823] 	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)
登入後複製

如果是通过使用代理上网的,应该是和代理的设置有关,需要在操作系统或者程序中设置好代理。(假设这里的代理服务器是:192.168.10.20:8080)

如果是请求一个url,直接设置一下系统的网络代理就可了额,Windows下在Internet选项里面设置代理即可:

20130909-proxy01

而在Linux下的设置入下:

在 /etc/profile文件中设置环境变量,分别制定HTTP,HTTPS,FTP协议使用的代理服务器地址:

http_proxy=192.168.10.20:8080
https_proxy=192.168.10.20:8080
ftp_proxy=192.168.10.20:8080
no_proxy=192.168.10.  # 访问局域网地址(192.168.10.0/24网段)时不使用代理
export http_proxy https_proxy ftp_proxy no_proxy
登入後複製

配置好之后保存,退出,注销重新登录后即可生效

Java程序中设置代理:

而这样配置之后如果还是会出现UnKnownHostException,很可能是系统配置的代理没有生效,可以在程序中添加如下代理试试:

System.getProperties().put("http.proxySet", "true");
System.getProperties().put("http.proxyHost", "192.168.10.20");
System.getProperties().put("http.proxyPort", "8080");
// System.getProperties().put("http.proxyUser", user);
// System.getProperties().put("http.proxyPassword", password);
System.getProperties().put("http.nonProxyHosts", "localhost|127.0.0.1");
登入後複製
相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新問題
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板