java.net.UnknownHostException: api.weixin.qq.com
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:175)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:384)
at java.net.Socket.connect(Socket.java:546)
at sun.security.ssl.SSLSocketImpl.connect(SSLSocketImpl.java:584)
at sun.net.NetworkClient.doConnect(NetworkClient.java:173)
at sun.net.www.http.HttpClient.openServer(HttpClient.java:409)
at sun.net.www.http.HttpClient.openServer(HttpClient.java:530)
at sun.net.www.protocol.https.HttpsClient.<init>(HttpsClient.java:275)
at sun.net.www.protocol.https.HttpsClient.New(HttpsClient.java:332)
at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.getNewHttpClient(AbstractDelegateHttpsURLConnection.java:191)
at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:876)
at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:177)
at sun.net.www.protocol.http.HttpURLConnection.getOutputStream(HttpURLConnection.java:979)
at sun.net.www.protocol.https.HttpsURLConnectionImpl.getOutputStream(HttpsURLConnectionImpl
这个错误是因为服务器无法识别api.weixin.qq.com这个域名
解决方法:
1、查看你的服务器能否ping通外网,不过不行说明你的网络出了问题
2、在确保可以ping通外网的情况下,分析你的服务器是不是不支持域名解析,也就是说你的服务器只能ping IP地址,
不能ping www.baidu.com 提示无法解析,那你就需要给服务器设置域名解析功能,方法:vi /etc/resolv.conf 在nameserver最前面一行加
nameserver 8.8.8.8
保存后重启网络服务 service network restart
再ping api.weixin.qq.com 应该就没问题了
如果以上方法都做了,都无法解决,那么还有一种方法:
就是给服务器配置域名IP对应地址
vi /etc/resolv.conf
在其中添加一条:
140.207.135.108 api.weixin.qq.com
保存退出
然后ping api.weixin.qq.com 就能ping 通了
如果还是不行,尝试重启下服务器即可解决,本人就是重启服务器才最终解决问题。希望能帮到你!
标签:qq,www,java,weixin,sun,UnknownHostException,protocol,net From: https://www.cnblogs.com/ossbar/p/18064349