RestTemplate报错I/O error on POST request for的解决办法
作者:¹º月²⁴日
问题:
org.springframework.web.client.ResourceAccessException: I/O error on POST request for "http://www.xxx.com/xxx/xxx/xxx": Read timed out; nested exception is java.net.SocketTimeoutException: Read timed out
场景:
在代码中使用RestTemplate请求http://www.xxx.com/xxx/xxx/xxx地址时,报上面的错误。
然后使用Postman调用上面地址,却能正确返回信息。
这个地址是甲方提供的接口,我们需要登录vpn后才能调用。
开发的时候RestTemplate调用是正常的,一段时间没用,在这次本地测试时出现了上面的错误。
后来网上找了半天终于解决了,总结了一下,希望送给有缘人。
原因:
具体原因不太清楚,好像是VPN不支持使用IPv6进行通讯导致的。
但是一开始也是使用同样的VPN,原因就不得而知了。
解决:
Intellij Idea 配置方法如下:
① 打开Edit Configurations...
② 设置VM options:-Djava.net.preferIPv4Stack=true,即仅使用IPv4进行通信即可
Eclipse 配置方法如下:
① 设置 Default VM arguments:-Djava.net.preferIPv4Stack=true 即可
总结
到此这篇关于RestTemplate报错I/O error on POST request for解决办法的文章就介绍到这了,更多相关I/O error on POST request for内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!