HttpPost 类(构建 HTTP POST 请求)

HttpPost 类是 Apache HttpClient 库中的一个类,用于构建 HTTP POST 请求。以下是 HttpPost 类的一些常用方法和代码案例:

常用方法

  1. 构造方法:

    • HttpPost(String uri):创建一个 HttpPost 对象,并将请求的 URI 作为参数传递。
  2. 设置请求体:

    • setEntity(HttpEntity entity):设置 POST 请求的请求体。
  3. 添加请求头:

    • addHeader(String name, String value):向请求中添加一个头信息。
    • setHeaders(Header[] headers):设置请求的所有头信息。
  4. 配置请求参数:

    • setConfig(RequestConfig config):设置请求的配置,如超时时间等。

代码案例

案例 1 :使用 HttpPost 发送一个简单的 POST 请求。

java 复制代码
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.HttpResponse;
import org.apache.http.util.EntityUtils;

CloseableHttpClient httpClient = HttpClients.createDefault();
HttpPost httpPost = new HttpPost("http://example.com/api");

try {
    HttpResponse response = httpClient.execute(httpPost);
    String responseString = EntityUtils.toString(response.getEntity());
    System.out.println(responseString);
} finally {
    httpClient.close();
}

在这个例子中,我们创建了一个 HttpPost 对象,并使用 httpClient 执行了请求。响应内容被转换成字符串并打印出来。

案例 2 :使用 HttpPost 发送一个包含 JSON 数据的 POST 请求。

java 复制代码
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.HttpResponse;
import org.apache.http.util.EntityUtils;

String json = "{\"key\":\"value\"}";
CloseableHttpClient httpClient = HttpClients.createDefault();
HttpPost httpPost = new HttpPost("http://example.com/api");
httpPost.setHeader("Content-Type", "application/json");
httpPost.setEntity(new StringEntity(json, "UTF-8"));

try {
    HttpResponse response = httpClient.execute(httpPost);
    String responseString = EntityUtils.toString(response.getEntity());
    System.out.println(responseString);
} finally {
    httpClient.close();
}

在这个例子中,我们创建了一个包含 JSON 数据的 StringEntity,并将其设置为 HttpPost 对象的请求体。我们还设置了内容类型为 application/json。

案例 3 :使用 HttpPost 发送一个包含表单数据的 POST 请求。

java 复制代码
import org.apache.http.client.methods.HttpPost;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.entity.mime.MultipartEntityBuilder;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.HttpResponse;
import org.apache.http.util.EntityUtils;

CloseableHttpClient httpClient = HttpClients.createDefault();
HttpPost httpPost = new HttpPost("http://example.com/api");

MultipartEntityBuilder builder = MultipartEntityBuilder.create();
builder.addPart("field1", new StringBody("value1"));
builder.addPart("field2", new StringBody("value2"));

HttpEntity multipart = builder.build();
httpPost.setEntity(multipart);

try {
    HttpResponse response = httpClient.execute(httpPost);
    String responseString = EntityUtils.toString(response.getEntity());
    System.out.println(responseString);
} finally {
    httpClient.close();
}
相关推荐
xyzzklk1 小时前
在Open-WebUI中提升向量化速度
网络·人工智能·爬虫·ai·语言模型·自然语言处理·安卓
沫璃染墨4 小时前
从零入门计算机网络系列(十四):TCP报文与字节流本质——从数据封装到报文边界
linux·服务器·网络·网络协议·tcp/ip·tcp
byte轻骑兵6 小时前
【LMP】规范精讲[13]: 参数的户口本、公钥的集装箱与出厂的兜底值
人工智能·网络协议·人机交互·lmp·蓝牙链路管理
流浪0016 小时前
计算机网络篇17:传输层——TCP 超时重传、三次握手与四次挥手,TIME_WAIT 为什么要等 2MSL
网络协议·tcp/ip·计算机网络·三次握手·四次挥手·超时重传
anew___18 小时前
《从零手写操作系统 (63):安全与加固——从内核保护到沙箱隔离》
网络·安全
Lzg_na18 小时前
VXLAN:背景、机制、报文字段与主机转发流程
网络
乐维_lwops20 小时前
案例解读:大型综合性科创产业园运维监控落地实践
运维·网络·人工智能·安全·it监控·国产运维智能体
m0_715674431 天前
政务泛监测体系能力排行:AI 重塑监测边界,治理的颗粒度革命
大数据·网络·人工智能·安全·网络安全·政务
AI 编程助手GPT1 天前
curl 返回成功就能收文件?用本地 HTTP 验证错误页与超时
网络·网络协议·http
十碗饭吃不饱1 天前
后端运维:网络联通、进程查询、Java服务启动脚本
java·运维·网络