发送这样一个http请求的方法可以使用Java中的HttpURLConnection类或者HttpClient类来实现。以下是一个基本的示例代码:
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
public class HttpRequestExample {
public static void main(String[] args) throws Exception {
URL url = new URL("http://example.com/api");
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
// 设置请求方法为POST
connection.setRequestMethod("POST");
// 设置请求头参数
connection.setRequestProperty("Content-Type", "multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW");
// 向请求体写入数据
String requestBody = "------WebKitFormBoundary7MA4YWxkTrZu0gW\r\n" +
"Content-Disposition: form-data; name=\"key1\"\r\n\r\n" +
"value1\r\n" +
"------WebKitFormBoundary7MA4YWxkTrZu0gW\r\n" +
"Content-Disposition: form-data; name=\"key2\"\r\n\r\n" +
"value2\r\n" +
"------WebKitFormBoundary7MA4YWxkTrZu0gW--\r\n";
connection.setDoOutput(true);
connection.getOutputStream().write(requestBody.getBytes());
// 发送请求并获取响应
int responseCode = connection.getResponseCode();
BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream()));
String line;
StringBuilder response = new StringBuilder();
while ((line = reader.readLine()) != null) {
response.append(line);
}
reader.close();
// 输出响应结果
System.out.println("Response Code: " + responseCode);
System.out.println("Response Data: " + response.toString());
// 关闭连接
connection.disconnect();
}
}
这个示例代码使用POST方法发送请求,并设置了请求头的Content-Type参数为"multipart/form-data",并且按照请求体的格式构造了一个字符串,并写入到请求体中。
hutool 的
HttpRequest
确实不能为 MultipartFormData 的每一项单独再设置 Content-Type 或者其他额外的属性标头了。但为啥非得用 hutool 呢?HttpClient 不就好了?