HttpClient发送请求而不等待响应

时间:2013-09-05 05:51:27

标签: java http httpclient

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

  1. 当收到一个请求时,它将对其进行处理。

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

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

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

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

    我也读过关于异步的事情,但它似乎最终会处理响应,这可能还需要一些时间。 (不太确定)

    我怎样才能发送请求并且不关心响应。有可能吗?

    很抱歉,如果我搞得一切都搞砸了。你真的很想弄清楚我的想法,或者就这个话题提出一些建议。感谢。

2 个答案:

答案 0 :(得分:2)

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

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

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

然后忘了它。

答案 1 :(得分:0)

即使我发现这个问题有点令人困惑,我认为你所追求的是一个异步的Http调用。这样,您可以选择是否要阅读响应。在这个论坛上有一篇关于如何写这篇文章的好文章。

How do you create an asynchronous HTTP request in JAVA?

此外,对于将来的参考,这可能是有意义的http://hc.apache.org/httpcomponents-client-ga/