macOS 下测试了下,比 Apache 和 JDK 的 HTTP client 强一点,比 AHC 和 Jetty HTTP client 差很远。
import com.linecorp.armeria.client.ClientFactory;
import com.linecorp.armeria.client.WebClient;
import java.io.IOException;
import java.net.URI;
import java.nio.charset.StandardCharsets;
import java.time.Duration;
import java.util.Base64;
import java.util.concurrent.CompletionStage;
public class ArmeriaHttpClient implements HttpClient {
private final WebClient httpClient;
private final Duration requestTimeout;
public ArmeriaHttpClient(String user, String password, Duration connectTimeout, Duration requestTimeout) {
this.requestTimeout = requestTimeout;
String basicAuth = "Basic " + Base64.getEncoder().encodeToString((user + ":" + password).getBytes(StandardCharsets.UTF_8));
httpClient = WebClient.builder()
.setHeader("Authorization", basicAuth)
.setHeader("Content-Type", "application/json")
.factory(ClientFactory.builder().connectTimeout(connectTimeout).build())
.responseTimeout(requestTimeout)
.build();
}
@Override
public CompletionStage<byte[]> httpPost(URI uri, byte[] body) {
return httpClient.post(uri.toString(), body)
.aggregate()
.thenApply(response -> response.content().array());
}
@Override
public void close() throws IOException {
}
}
【 在 xieyiyi 的大作中提到: 】
: 标 题: Re: Java HTTP/2 客户端库的性能比较 zz
: 发信站: 水木社区 (Sat Nov 19 18:38:22 2022), 站内
:
: 有兴趣可以再试试评估 Armeria 的 HTTP client 的性能
: --
:
: ※ 来源:·水木社区
http://www.mysmth.net·[FROM: 111.193.225.*]
--
FROM 124.64.121.*