import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.HashMap;
import java.util.Map;
public class PostFormDataExample {
public static void main(String[] args) {
try {
// 目标URL
URL url = new URL("https://example.com/api/endpoint");
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
// 设置请求方法为POST
connection.setRequestMethod("POST");
// 设置允许输出
connection.setDoOutput(true);
// 设置Content-Type为multipart/form-data
connection.setRequestProperty("Content-Type", "multipart/form-data; boundary=boundary");
// 创建表单数据
Map<String, String> formData = new HashMap<>();
formData.put("field1", "value1");
formData.put("field2", "value2");
// 构建请求体
StringBuilder requestBody = new StringBuilder();
for (Map.Entry<String, String> entry : formData.entrySet()) {
requestBody.append("--boundary\r\n")
.append("Content-Disposition: form-data; name=\"").append(entry.getKey()).append("\"\r\n")
.append("\r\n")
.append(entry.getValue())
.append("\r\n");
}
requestBody.append("--boundary--\r\n");
// 发送请求体
try (OutputStream os = connection.getOutputStream()) {
os.write(requestBody.toString().getBytes());
}
// 获取响应码
int responseCode = connection.getResponseCode();
System.out.println("Response Code: " + responseCode);
// 处理响应(这里省略了读取响应的具体代码)
} catch (Exception e) {
e.printStackTrace();
}
}
}
URL对象,并打开一个HttpURLConnection连接。然后,我们设置请求方法为POST,并允许输出。form-data格式的数据,我们需要设置Content-Type为multipart/form-data,并指定一个边界(boundary)。HashMap来存储表单字段和对应的值。multipart/form-data的格式要求,我们构建请求体字符串。每个字段以边界开始,包含字段名和值,最后以边界结束。OutputStream将构建好的请求体发送到服务器。这个示例展示了如何使用Java发送带有form-data的POST请求。
下一篇:java发送post请求带参数
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站