3

我正在尝试制作一个完成以下任务的java控制器类:

  1. 当它收到一个请求时,它会处理它。

  2. 当该过程完成并在返回语句之前,我实例化了一个 Httpclient 并尝试发出一个与当前请求完全相同的请求并将其发布到另一台服务器。

我已经完成了任务。但我想知道这里发生了什么:(下)

HttpResponse response=client.execute(post);// will the program blocks here ? 

当我搜索互联网时,程序阻塞似乎是真的,这不是我想要的。

我还阅读了有关异步的东西,但它似乎最终会处理响应,这可能仍需要一些时间。(不太确定)

我怎么能只发送请求而不关心响应。可能吗 ?

对不起,如果我把一切都搞砸了。如果您能阐明我的想法或就这个话题提供一些建议,您将非常好。谢谢。

4

2 回答 2

1

我最喜欢的 Java 异步 HTTP 库是AsyncHttpClient

如果您不关心处理响应,那么您可以这样做:

AsyncHttpClient asyncHttpClient = new AsyncHttpClient();
Future<Response> f = asyncHttpClient.preparePost("http://www.myurlhere.com/").execute();

然后忘记它。

于 2013-09-05T06:22:09.547 回答
0

尽管我觉得这个问题有点令人困惑,但我认为您所追求的是异步 Http 调用。通过这种方式,您可以选择是否要阅读回复。这个论坛上有一篇关于如何写这个的好帖子。

如何在 JAVA 中创建异步 HTTP 请求?

此外,这可能对http://hc.apache.org/httpcomponents-client-ga/感兴趣,以供将来参考。

于 2013-09-05T06:07:58.077 回答