Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java HttpClient发送请求,无需等待响应_Java_Http_Httpclient - Fatal编程技术网

Java HttpClient发送请求,无需等待响应

Java HttpClient发送请求,无需等待响应,java,http,httpclient,Java,Http,Httpclient,我正在尝试创建一个java控制器类来完成以下任务: 当它收到一个请求时,它将对其进行处理 当这个过程完成后,在return语句之前,我实例化了一个Httpclient,并尝试发出一个与当前请求完全相同的请求,然后将其发布到另一个服务器 我已经完成了任务。但我想知道这里发生了什么:(下图) 当我在互联网上搜索时,似乎程序确实会被屏蔽,而这不是我想要的 我也读过关于异步的东西,但它似乎最终会处理响应,这可能还需要一些时间。(不太确定) 我怎么能只发送请求而不关心响应。可能吗? 对不起,如果我把一切都

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

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

  • 当这个过程完成后,在return语句之前,我实例化了一个Httpclient,并尝试发出一个与当前请求完全相同的请求,然后将其发布到另一个服务器

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

    当我在互联网上搜索时,似乎程序确实会被屏蔽,而这不是我想要的

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

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


    对不起,如果我把一切都搞砸了。如果你能让我了解一下,或者就这个话题给我提些建议,那就太好了。谢谢。

    尽管我觉得这个问题有点让人困惑,但我认为您想要的是一个异步Http调用。通过这种方式,您可以选择是否要读取响应。在这个论坛上有一篇关于如何写这篇文章的好帖子


    此外,这可能是未来参考的兴趣

    我最喜欢的Java异步HTTP库是

    如果您不关心处理响应,那么您只需执行以下操作:

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

    然后忘掉它。

    你说的“还需要一些时间”是什么意思?您是否担心最终会收到多少数据?您是否真的不关心请求是否失败(例如,服务器关闭,或响应为500)?不关心请求是否失败。还有一个问题。那么,就异步调用而言,您到底关心什么呢?我想知道,即使我选择忽略响应,异步调用在返回响应时是否仍会占用资源?可能会有一些验证等处理,但听起来您在这个阶段过早地进行了优化。为什么不实现它并进行测试呢?您特别关注哪些资源?感谢您的“未来参考”,我将深入了解rfc的内容。我将去尝试一下。谢谢就我个人而言,我不明白在回复返回之前asynHttpClient会发生什么?它在记忆中某处等待?那么,当未来的响应返回时会发生什么呢。如果没有响应会发生什么?是的,它运行在一个单独的线程中,基本上是在等待。如果没有回应,我假设它会继续等待,但这不应该发生。即使发生了连接问题之类的错误,这也会抛出一个错误,未来还会回来。
    AsyncHttpClient asyncHttpClient = new AsyncHttpClient();
    Future<Response> f = asyncHttpClient.preparePost("http://www.myurlhere.com/").execute();