使用Java进行异步http调用的最轻量级的方法是什么?

使用Java进行异步http调用的最轻量级的方法是什么?,java,http,asynchronous,Java,Http,Asynchronous,可能重复: Java中进行同步HTTP调用的一种非常轻量级的方法是使用 是否有一种同样简单的方法来进行非阻塞,“异步”HTTP调用 我已经研究过:Java NIO、Netty Http客户端、Apache Commons HttpClient 4.0,但解决方案要么很复杂(Java NIO),要么引入依赖项,我希望避免这种情况 HTTP是一种同步协议。在这方面,我认为您不应该看到这两种情况与客户端之间有任何显著差异。但这也取决于您所说的轻量级HTTP是一个同步协议。在这方面,我认为您不应该看到

可能重复:

Java中进行同步HTTP调用的一种非常轻量级的方法是使用

是否有一种同样简单的方法来进行非阻塞,“异步”HTTP调用


我已经研究过:Java NIO、Netty Http客户端、Apache Commons HttpClient 4.0,但解决方案要么很复杂(Java NIO),要么引入依赖项,我希望避免这种情况

HTTP是一种同步协议。在这方面,我认为您不应该看到这两种情况与客户端之间有任何显著差异。但这也取决于您所说的轻量级HTTP是一个同步协议。在这方面,我认为您不应该看到这两种情况与客户端之间有任何显著差异。但这也取决于您所说的轻量级

是指非阻塞http调用吗?您可以在线程中进行阻塞http调用,这仍然是异步的,但不确定这是否是您想要的非阻塞是我想要的!我在这方面澄清了上述问题。为每个请求启动一个线程正是我想要避免的!您的意思是非阻塞http调用吗?您可以在线程中进行阻塞http调用,这仍然是异步的,但不确定这是否是您想要的非阻塞是我想要的!我在这方面澄清了上述问题。为每个请求启动一个线程正是我想要避免的!我假设在客户端为每个请求启动一个线程(尊重应用程序中http的同步性质),而不是使用基于NIO或类似的东西在一个线程中处理多个请求,这会产生很大的不同?轻量级方面:易于集成到各种应用程序中,使用尽可能少的依赖项取决于您尝试执行的操作。如果您的客户端希望向服务器发送并发请求(即请求彼此无关),那么使用NIO可能会更好地利用资源。但是如果您需要在发送下一个请求之前接收响应(这是通常的
HTTP
flow)然后您可以重用线程(不知道NIO在这里会如何帮助您)没错!这是一个很好的观点。可能最好尝试将客户机到HTTP服务器的调用批处理在一起,并以同步方式发送它们……不过,这并不总是可行/可取的。例如,它可以减少一些操作对服务器的“快速跟踪”调用的延迟,而无需等待批处理过程s(或来自服务器的所有挂起响应)。此外,在我的例子中,一个客户端可以有多个服务器的挂起请求。现在我想您正在尝试将NIO与阻塞IO进行比较,我不知道HTTP上的问题是如何相关的。我假设为每个请求启动一个线程(尊重应用程序中HTTP的同步性质)在客户端,与使用基于NIO或类似的东西在一个线程中处理多个请求相比,这可能会有很大的不同?轻量级方面:易于集成到各种应用程序中,使用尽可能少的依赖项取决于您尝试执行的操作。如果您的客户端希望向服务器发送并发请求(即请求彼此无关)那么使用NIO可能会更好地利用资源。但是如果您需要在发送下一个请求(通常是
HTTP
flow)之前接收响应,那么您可以为此重用线程(不知道NIO会如何帮助您)没错!这是一个很好的观点。可能最好尝试将客户机到HTTP服务器的调用批处理在一起,并以同步方式发送它们……不过,这并不总是可行/可取的。例如,它可以减少一些操作对服务器的“快速跟踪”调用的延迟,而无需等待批处理过程s(或来自服务器的所有挂起响应)。此外,在我的例子中,一个客户端可以有多个服务器的挂起请求。现在我认为您正在尝试将NIO与阻塞IO进行比较,我不认为HTTP上的问题有什么关系