httpClient post请求带参数不带body带请求头
时间: 2023-06-28 19:05:00 浏览: 136
可以使用 `HttpClient` 的 `HttpPost` 方法来发送带参数但不带 body 的 POST 请求,并通过 `setHeader` 方法设置请求头。
以下是一个示例代码:
```java
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.HttpClientBuilder;
import org.apache.http.message.BasicHeader;
import org.apache.http.protocol.HTTP;
import java.io.IOException;
public class HttpExample {
public static void main(String[] args) throws IOException {
HttpClient client = HttpClientBuilder.create().build();
HttpPost post = new HttpPost("http://example.com/api");
// 设置请求头
post.setHeader(new BasicHeader(HTTP.CONTENT_TYPE, "application/x-www-form-urlencoded"));
// 设置参数
StringEntity entity = new StringEntity("param1=value1¶m2=value2", "UTF-8");
post.setEntity(entity);
client.execute(post);
}
}
```
在上面的代码中,我们首先创建了一个 `HttpClient` 对象,然后创建了一个 `HttpPost` 对象并设置了请求地址。接着,我们通过 `setHeader` 方法设置了请求头,这里我们设置了 `Content-Type` 为 `application/x-www-form-urlencoded`。最后,我们通过 `setEntity` 方法设置了请求参数,这里我们使用了一个 `StringEntity` 对象,并将参数以字符串形式传入。
注意:如果请求的参数比较复杂,需要进行编码,比如对特殊字符进行 URL 编码。
阅读全文