gpt4 book ai didi

java - 用于 HTTP POST、GET 等的最佳 Java 库是什么?

转载 作者:IT老高 更新时间:2023-10-28 11:41:30 25 4
gpt4 key购买 nike

在性能、稳定性、成熟度等方面,用于 HTTP POST、GET 等的最佳 Java 库是什么?是否有一个特定的库比其他库使用得更多?

我的要求是向远程服务器提交 HTTPS POST 请求。我过去使用过 java.net.* 包以及 org.apache.commons.httpclient.* 包。两者都完成了工作,但我想听听您的一些意见/建议。

最佳答案

恕我直言:Apache HTTP Client

用法示例:

import org.apache.commons.httpclient.*;
import org.apache.commons.httpclient.methods.*;
import org.apache.commons.httpclient.params.HttpMethodParams;

import java.io.*;

public class HttpClientTutorial {

private static String url = "http://www.apache.org/";

public static void main(String[] args) {
// Create an instance of HttpClient.
HttpClient client = new HttpClient();

// Create a method instance.
GetMethod method = new GetMethod(url);

// Provide custom retry handler is necessary
method.getParams().setParameter(HttpMethodParams.RETRY_HANDLER,
new DefaultHttpMethodRetryHandler(3, false));

try {
// Execute the method.
int statusCode = client.executeMethod(method);

if (statusCode != HttpStatus.SC_OK) {
System.err.println("Method failed: " + method.getStatusLine());
}

// Read the response body.
byte[] responseBody = method.getResponseBody();

// Deal with the response.
// Use caution: ensure correct character encoding and is not binary data
System.out.println(new String(responseBody));

} catch (HttpException e) {
System.err.println("Fatal protocol violation: " + e.getMessage());
e.printStackTrace();
} catch (IOException e) {
System.err.println("Fatal transport error: " + e.getMessage());
e.printStackTrace();
} finally {
// Release the connection.
method.releaseConnection();
}
}
}

一些亮点功能:

  • 基于标准、纯 Java、HTTP 版本 1.0 的实现和 1.1
    • 所有 HTTP 方法(GET、POST、PUT、DELETE、HEAD、OPTIONS 和 TRACE)在可扩展的 OO 框架。
    • 支持使用 HTTPS(HTTP over SSL)协议(protocol)进行加密。
    • 精细的非标准配置和跟踪。
    • 通过 HTTP 代理的透明连接。
    • 通过 HTTP 代理的隧道 HTTPS 连接,通过 CONNECT方法。
    • 通过 SOCKS 代理(版本 4 和 5)使用透明连接 native Java 套接字支持。
    • 使用 Basic、Digest 和加密 NTLM (NT局域网管理器)方法。
    • 自定义身份验证方法的插件机制。
    • 用于上传大文件的多部分表单 POST。
    • 可插拔的安全套接字实现,使其更容易使用第三方解决方案
    • 支持在多线程中使用的连接管理应用程序。支持设置最大总连接数以及每个主机的最大连接数。检测并关闭过时的连接。
    • 用于读取 Set-Cookie 的自动 Cookie 处理:来自服务器并将它们发送回Cookie:适当时的 header 。
    • 自定义 cookie 策略的插件机制。
    • 请求输出流以避免缓冲任何内容体直接流式传输到套接字服务器。
    • 响应输入流通过以下方式有效读取响应正文直接从套接字流式传输到服务器。
    • 在 HTTP/1.0 和持久性中使用 KeepAlive 的持久连接在 HTTP/1.1 中
    • 直接访问服务器发送的响应代码和 header 。
    • 设置连接超时的能力。
    • HttpMethods 实现命令模式以允许并行请求和有效的重用连接。
    • 根据 Apache 软件许可证免费提供源代码。

关于java - 用于 HTTP POST、GET 等的最佳 Java 库是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1322335/

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