gpt4 book ai didi

java - 用于 Java 的异步 HTTP 客户端

转载 作者:太空狗 更新时间:2023-10-29 22:31:21 24 4
gpt4 key购买 nike

作为 Java 世界的相对新手,我发现许多事情很难完成,而这些事情在许多其他框架中相对微不足道。一个主要示例是针对异步 http 请求的简单解决方案。鉴于似乎还不存在,最好的方法是什么?使用阻塞类型库(如 httpclient 或内置的 java http 东西)创建我自己的线程,或者我应该使用更新的非阻塞 io java 东西 - 对于应该简单的东西来说它似乎特别复杂。

我正在寻找的是从开发人员的角度来看易于使用的东西 - 类似于 AS3 中的 URLLoader - 你只需创建一个 URLRequest - 附加一堆事件处理程序来处理完成、错误、进度等, 并调用一个方法来触发它。

如果您不熟悉 AS3 中的 URLLoader,它非常简单,看起来像这样:

private void getURL(String url)
{
URLLoader loader = new URLLoader();
loader.addEventListener(Event.Complete, completeHandler);
loader.addEventListener(HTTPStatusEvent.HTTP_STATUS, httpStatusHandler);
loader.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);

URLRequest request = new URLRequest(url);

// fire it off - this is asynchronous so we handle
// completion with event handlers
loader.load(request);
}

private void completeHandler(Event event)
{
URLLoader loader = (URLLoader)event.target;
Object results = loader.data;

// process results
}

private void httpStatusHandler(Event event)
{
// check status code
}

private void ioErrorHandler(Event event)
{
// handle errors
}

最佳答案

Java 中的异步 HTTP 客户端有多种选择

  1. Java 8:使用 async-http-client以前称为 ning http 客户端库。
  2. Java 11 及更高版本:JDK 现在带有 java.net.http. HttpClient这是完全异步的。
  3. Square 的 OkHttpClient .支持带回调的同步阻塞和异步调用。在 Android 上很受欢迎。

关于java - 用于 Java 的异步 HTTP 客户端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1014528/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com