我正在尝试创建一个完成以下任务的java控制器类:
当收到一个请求时,它将对其进行处理。
当进程完成后,在返回语句之前,我实例化了一个Httpclient,并尝试将一个请求与当前请求完全相同,并将其发布到另一个服务器。
我已完成任务。但我想知道这里发生了什么:(下)
HttpResponse response=client.execute(post);// will the program blocks here ?
当我搜索互联网时,程序似乎是阻止的,这不是我想要的。
我也读过关于异步的事情,但它似乎最终会处理响应,这可能还需要一些时间。 (不太确定)
我怎样才能发送请求并且不关心响应。有可能吗?
很抱歉,如果我搞得一切都搞砸了。你真的很想弄清楚我的想法,或者就这个话题提出一些建议。感谢。
答案 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/。