0


用java实现模仿 Postman 发送 form-data 形式的请求,并指定编码格式

可以使用 Apache HttpClient 库来模仿 Postman 发送 form-data 形式的请求,并指定编码格式。以下是一个示例代码:

importorg.apache.http.HttpEntity;importorg.apache.http.HttpResponse;importorg.apache.http.client.HttpClient;importorg.apache.http.client.entity.UrlEncodedFormEntity;importorg.apache.http.client.methods.HttpPost;importorg.apache.http.impl.client.HttpClients;importorg.apache.http.message.BasicNameValuePair;importjava.io.IOException;importjava.nio.charset.StandardCharsets;importjava.util.ArrayList;importjava.util.List;publicclassPostFormDataWithEncoding{publicstaticvoidmain(String[] args)throwsIOException{HttpClient httpClient =HttpClients.createDefault();HttpPost httpPost =newHttpPost("YOUR_ENDPOINT_URL");// 准备 form-data 参数List<BasicNameValuePair> params =newArrayList<>();
        params.add(newBasicNameValuePair("param1","value1"));
        params.add(newBasicNameValuePair("param2","value2"));// 设置编码格式为 UTF-8UrlEncodedFormEntity entity =newUrlEncodedFormEntity(params,StandardCharsets.UTF_8);
        httpPost.setEntity(entity);// 发送请求HttpResponse response = httpClient.execute(httpPost);// 处理响应int statusCode = response.getStatusLine().getStatusCode();System.out.println("Status Code: "+ statusCode);}}

在这个示例中,

YOUR_ENDPOINT_URL

应该被替换为目标 URL。这段代码使用了 Apache HttpClient 库创建了一个带有 form-data 的请求,并使用

UrlEncodedFormEntity

设置了编码格式为 UTF-8。发送请求后,代码处理了服务器的响应。

这种方式适用于发送简单的 form-data 参数。如果需要添加文件或其他复杂的参数,建议使用

MultipartEntityBuilder

带文件的代码示例如下:

importorg.apache.http.HttpEntity;importorg.apache.http.HttpResponse;importorg.apache.http.client.HttpClient;importorg.apache.http.client.entity.UrlEncodedFormEntity;importorg.apache.http.client.methods.HttpPost;importorg.apache.http.entity.ContentType;importorg.apache.http.entity.mime.MultipartEntityBuilder;importorg.apache.http.impl.client.HttpClients;importorg.apache.http.message.BasicNameValuePair;importjava.io.File;importjava.io.IOException;importjava.nio.charset.StandardCharsets;importjava.util.ArrayList;importjava.util.List;publicclassPostFormDataWithFile{publicstaticvoidmain(String[] args)throwsIOException{HttpClient httpClient =HttpClients.createDefault();HttpPost httpPost =newHttpPost("YOUR_ENDPOINT_URL");// 准备 form-data 参数List<BasicNameValuePair> params =newArrayList<>();
        params.add(newBasicNameValuePair("param1","value1"));
        params.add(newBasicNameValuePair("param2","value2"));// 设置编码格式为 UTF-8MultipartEntityBuilder builder =MultipartEntityBuilder.create().setCharset(StandardCharsets.UTF_8);// 添加文本参数for(BasicNameValuePair param : params){
            builder.addTextBody(param.getName(), param.getValue(),ContentType.TEXT_PLAIN);}// 添加文件参数File file =newFile("path_to_your_file");
        builder.addBinaryBody("file", file,ContentType.APPLICATION_OCTET_STREAM, file.getName());// 构建请求实体HttpEntity multipart = builder.build();
        httpPost.setEntity(multipart);// 发送请求HttpResponse response = httpClient.execute(httpPost);// 处理响应int statusCode = response.getStatusLine().getStatusCode();System.out.println("Status Code: "+ statusCode);}}

在这个示例中,需要将 YOUR_ENDPOINT_URL 替换为目标 URL,并将 “path_to_your_file” 替换为你的文件路径。

使用 MultipartEntityBuilder 构建了一个带有 form-data 和文件参数的请求。这样,可以在请求中包含文本参数和文件参数,然后发送到服务器。

标签: java 开发语言

本文转载自: https://blog.csdn.net/qq_39327650/article/details/134935978
版权归原作者 十七号程序猿 所有, 如有侵权,请联系我们删除。

“用java实现模仿 Postman 发送 form-data 形式的请求,并指定编码格式”的评论:

还没有评论