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

这篇具有很好参考价值的文章主要介绍了用java实现模仿 Postman 发送 form-data 形式的请求,并指定编码格式。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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

import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.message.BasicNameValuePair;
import java.io.IOException;
import java.nio.charset.StandardCharsets;
import java.util.ArrayList;
import java.util.List;

public class PostFormDataWithEncoding {
    public static void main(String[] args) throws IOException {
        HttpClient httpClient = HttpClients.createDefault();
        HttpPost httpPost = new HttpPost("YOUR_ENDPOINT_URL");

        // 准备 form-data 参数
        List<BasicNameValuePair> params = new ArrayList<>();
        params.add(new BasicNameValuePair("param1", "value1"));
        params.add(new BasicNameValuePair("param2", "value2"));

        // 设置编码格式为 UTF-8
        UrlEncodedFormEntity entity = new UrlEncodedFormEntity(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

带文件的代码示例如下:

import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.ContentType;
import org.apache.http.entity.mime.MultipartEntityBuilder;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.message.BasicNameValuePair;
import java.io.File;
import java.io.IOException;
import java.nio.charset.StandardCharsets;
import java.util.ArrayList;
import java.util.List;

public class PostFormDataWithFile {
    public static void main(String[] args) throws IOException {
        HttpClient httpClient = HttpClients.createDefault();
        HttpPost httpPost = new HttpPost("YOUR_ENDPOINT_URL");

        // 准备 form-data 参数
        List<BasicNameValuePair> params = new ArrayList<>();
        params.add(new BasicNameValuePair("param1", "value1"));
        params.add(new BasicNameValuePair("param2", "value2"));

        // 设置编码格式为 UTF-8
        MultipartEntityBuilder builder = MultipartEntityBuilder.create().setCharset(StandardCharsets.UTF_8);

        // 添加文本参数
        for (BasicNameValuePair param : params) {
            builder.addTextBody(param.getName(), param.getValue(), ContentType.TEXT_PLAIN);
        }

        // 添加文件参数
        File file = new File("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 和文件参数的请求。这样,可以在请求中包含文本参数和文件参数,然后发送到服务器。文章来源地址https://www.toymoban.com/news/detail-787305.html

到了这里,关于用java实现模仿 Postman 发送 form-data 形式的请求,并指定编码格式的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Java以form-data(表单)的形式调用第三方接口

    之前写的调用第三方接口: Java使用原生API调用第三方接口 但是其中只包含了简单的接口(传递数据为JSON)调用。也就是 Content-Type 的值是设置成: 当第三方接口需要包含 文件 类型的参数,我们要设置成以 表单形式 提交,就要那么该属性就应该设置成 表示是以 表单形式

    2024年02月02日
    浏览(47)
  • 使用postman发送请求,提示Content type ‘multipart/form-data not supported

    1、原因:后端通过@RequestBody 的方式接收参数,不能通过form-data方式传参,每一个请求必须是通过实体对象进行传参,需要改为使用json传参

    2024年01月22日
    浏览(40)
  • Java发送form-data请求

    在Java中发送form-data请求,可以使用Apache HttpClient或OkHttp这样的HTTP客户端库来发送请求。 1.添加依赖 2.代码 对于HttpClient对象,HttpClientBuilder.create().build()创建的实例是 不需要手动关闭 的。 在使用HttpClientBuilder创建HttpClient对象时,不需要手动关闭HttpClient对象。这是因为HttpCli

    2024年02月10日
    浏览(33)
  • spring boot实现postman中form-data传参方式

    开发中遇到对接需求时候,被要求用post请求传form-data数据的时候一脸懵逼,在postman中可以调用,但是程序中怎么调用呢。 在postman中调用是没问题的  但是在程序中调用就报错了,之前用的是HttpClient的方式请求的 请求普通的接口没问题,但是第三方的接口会报错:415 Unsup

    2024年02月11日
    浏览(28)
  • Okhttp实现参数请求接口用postman的form-data请求接口

    1.看下图,是不是这种访问方式 2.如果是这种访问方式,使用okhttp请求接口是这样的。

    2024年02月04日
    浏览(34)
  • python-用form-data形式上传文件请求

    虽然现在基本上都约定俗成的接口都用json形式请求 但是不可避免地 有些接口需要传文件流,此时就需要用form-data形式上传了 for.e: 存在以下接口,通过接口创建海报图 但需要上传缩略图, 此时接口的Content-Type就不能是application/json,而是multipart/form-data; 参数格式也是以表单

    2023年04月08日
    浏览(34)
  • java 发送 http 文件 post,form-data格式的数据,MultipartEntityBuilder addTextBody中文乱码

    平常我们对接第三方都是以json的数据进行数据交互的,这次第三方接口只支持form-data格式的表单数据,传json数据对方不支持,通过百度和尝试各种方案最终完美解决,后期再慢慢优化吧。还有一个问题,数据中包含中文的户,到第三方是乱码的,经过百度参考前辈的经验,

    2024年02月13日
    浏览(27)
  • postman上传文件(multipart/form-data请求)

    网页的form表单中,如果存在上传文件的表单,则需要将form标签设置enctype=\\\"multipart/form-data\\\"属性,意思是将Content-Type设置成multipart/form-data。 那么如何使用 postman发送 multipart/form-data请求呢? Content-Type: multipart/form-data; boundary= 表单中的 enctype 属性规定在发送到服务器之前应该如

    2024年02月02日
    浏览(45)
  • c#HTTP使用form-data发送请求

    这个一直研究了很久,通过json字符串解析成键值对,再添加到Http请求中,经过测试可以正常接收数据。 封装了方法 还有另一种简单的方法

    2024年02月11日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包