我在调查一个很奇怪的问题。我正在处理的项目使用通过http调用方法。从我到目前为止所收集到的资料来看,发生了以下情况:
由于我的客户端代码只对Spring客户端执行一个请求,并且在它接收到的第二次调用完成后客户端继续执行,所以我只能得出结论,这发生在Spring客户机的某个地方。
客户机使用AbstractHttpInvokerRequestExecutor进行实际的http-调用,而这反过来又使用SimpleHttpInvokerRequestExecutor进行请求。但是,据我所知,它没有重试请求的机制。所以现在我被困住了。
有人能想到是什么导致了这种行为吗?(我试着把问题弄清楚,但如果需要的话,我还有更多的细节。)
发布于 2019-08-29 14:58:29
只是给你一些方向的想法,而不一定是一个解决方案。使用第三方Http客户端(而不是Spring中的一个)查看它是否更改了行为。这可能会帮助你看看是否是SimpleHttpInvokerRequestExecutor“有罪”的重试或其他什么。这里有一个非常简单的3d派对HttpClient:在MgntUtils开源库中提供(由我编写)。使用起来很简单。看看Javadoc。库本身是以Maven伪像和Git提供的(包括源代码和Javadoc)。总而言之,您的代码可能如下所示:
private static void testHttpClient() {
HttpClient client = new HttpClient();
client.setContentType("application/json");
String content = null;
try {
content = client.sendHttpRequest("http://www.google.com/", HttpMethod.GET);
//content holds the response. Do your logic here
} catch (IOException e) {
//Error Handling is here
content = TextUtils.getStacktrace(e, false);
}
}https://stackoverflow.com/questions/57712410
复制相似问题