java url中的参数如何执行POST ?
时间: 2024-05-03 16:22:13 浏览: 98
Java如何实现URL带请求参数(get/post)及得到get和post请求url和参数列表的方法
5星 · 资源好评率100%
在 Java 中,可以使用 HttpURLConnection 类来执行 POST 请求,并将参数作为请求体发送。
以下是一个示例代码:
```java
import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLEncoder;
public class HttpPostExample {
public static void main(String[] args) throws Exception {
// 定义请求参数
String url = "http://example.com/api";
String name = "John Doe";
int age = 30;
String email = "john.doe@example.com";
// 创建连接对象
URL obj = new URL(url);
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
// 设置请求方法为 POST
con.setRequestMethod("POST");
// 设置请求头信息
con.setRequestProperty("User-Agent", "Mozilla/5.0");
con.setRequestProperty("Accept-Language", "en-US,en;q=0.5");
// 构造请求体
String urlParameters = "name=" + URLEncoder.encode(name, "UTF-8") +
"&age=" + age +
"&email=" + URLEncoder.encode(email, "UTF-8");
// 发送请求体
con.setDoOutput(true);
DataOutputStream wr = new DataOutputStream(con.getOutputStream());
wr.writeBytes(urlParameters);
wr.flush();
wr.close();
// 获取响应结果
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
// 打印响应结果
System.out.println("Response Code : " + responseCode);
System.out.println("Response : " + response.toString());
}
}
```
在上述代码中,我们将请求参数拼接成一个字符串,并设置到请求体中发送。在发送请求体之前,我们需要设置 `con.setDoOutput(true)` 来允许输出数据。最后,我们通过 `con.getInputStream()` 获取响应结果,并将其以字符串的形式返回。
阅读全文