最近在通过hutool工具进行代理请求时发现一个报错,大致代码如下
HttpResponse execute = HttpRequest.get(url)
.setHttpProxy("xxx.xxx.xxx.xx", xxxx)
.basicProxyAuth("xxxx", "xxxx")
.setConnectionTimeout(xxx)
.setReadTimeout(xxx)
.execute();
调用的是https,报错信息如下
Exception in thread "main" cn.hutool.core.io.IORuntimeException: IOException: Unable to tunnel through proxy. Proxy returns "HTTP/1.1 407 Proxy Authentication Required"
at cn.hutool.http.HttpRequest.send(HttpRequest.java:1351)
at cn.hutool.http.HttpRequest.doExecute(HttpRequest.java:1189)
at cn.hutool.http.HttpRequest.execute(HttpRequest.java:1052)
at cn.hutool.http.HttpRequest.execute(HttpRequest.java:1028)
at com.jsmhw.push.config.Test.main(Test.java:55)
Caused by: java.io.IOException: Unable to tunnel through proxy. Proxy returns "HTTP/1.1 407 Proxy Authentication Required"
at java.base/sun.net.www.protocol.http.HttpURLConnection.doTunneling0(HttpURLConnection.java:2266)
at java.base/sun.net.www.protocol.http.HttpURLConnection.doTunneling(HttpURLConnection.java:2136)
at java.base/sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:185)
at java.base/sun.net.www.protocol.https.HttpsURLConnectionImpl.connect(HttpsURLConnectionImpl.java:142)
at cn.hutool.http.HttpConnection.connect(HttpConnection.java:384)
at cn.hutool.http.HttpRequest.send(HttpRequest.java:1346)
... 4 more
解决方式如下
添加启动参数,放在springboot项目main方法中就行
System.setProperty("jdk.http.auth.tunneling.disabledSchemes", "");
其它 : 推荐使用 HttpClient