当前位置:首页 > PHP教程 > PHP总结归纳

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

执行下面的语句时抛出了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-

执行下面的语句时抛出了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选项里面设置代理即可:

而在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");


【说明】本文章由站长整理发布,文章内容不代表本站观点,如文中有侵权行为,请与本站客服联系(QQ:)!