[英]restTemplate.getForEntity() get connect timed out
I use RestTemplate to call a remote api get data and occur an error java.net.SocketTimeoutException: connect timed out
. 我使用RestTemplate调用远程api获取数据并发生错误
java.net.SocketTimeoutException: connect timed out
。 But when I use Postman, I get the data ( status=200 time=167ms
) 但是当我使用Postman时,我得到了数据(
status=200 time=167ms
)
here is the code: 这是代码:
Sting url = "http://XXX.XXX.XXX.XX:8080/api/v1/resources?ak={ak}&ruleno={ruleno}&limit={limit}&offset={offset}&time={time}&ts={ts}&trace_id={trace_id}&sign={sign}";
Map<String, String> urlMap = new HashMap<>();
urlMap.put("ak", ak);
urlMap.put("ruleno", ruleNo);
urlMap.put("limit", limit);
urlMap.put("offset", offset);
urlMap.put("time", time);
urlMap.put("ts", ts);
urlMap.put("trace_id", traceId);
urlMap.put("sign", sign);
ResponseEntity<HashMap> result = restTemplate.getForEntity(url, HashMap.class, urlMap);
the error is: 错误是:
java.net.SocketTimeoutException: connect timed out at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method) ~[na:1.8.0_191] at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85) ~[na:1.8.0_191] at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350) ~[na:1.8.0_191]
java.net.SocketTimeoutException:java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)处的java.net.DualStackPlainSocketImpl.waitForConnect(本机方法)〜[na:1.8.0_191]超时〜[na:1.8。 0_191],位于java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)〜[na:1.8.0_191]
I have a proxy in browser, so I can use Postman to call the api
, but when I use java code I have not proxy, so I can't access the api
. 我在浏览器中有一个代理,因此我可以使用Postman调用
api
,但是当我使用java代码时,我没有代理,因此无法访问api
。
use this solve the problem: 用这个解决问题:
SimpleClientHttpRequestFactory clientHttpRequestFactory = new SimpleClientHttpRequestFactory();
Proxy proxy = new Proxy(Proxy.Type.HTTP, new InetSocketAddress("my.proxy.com", 9999));
clientHttpRequestFactory.setProxy(proxy);
RestTemplate restTemplate = new RestTemplate(clientHttpRequestFactory);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.