Java请求调用参数格式为form-data类型的接口

这篇具有很好参考价值的文章主要介绍了Java请求调用参数格式为form-data类型的接口。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

接口参数使用postman调用如图所示,只能使用form-data格式调用
Java请求调用参数格式为form-data类型的接口,Java学习,java,开发语言
使用java代码发送http请求实现此种方式的接口调用

public static String doPostForm(String url, HashMap<String, String> map) throws Exception {
        String result = "";
        CloseableHttpClient client = null;
        CloseableHttpResponse response = null;
        RequestConfig defaultRequestConfig = RequestConfig.custom().setSocketTimeout(550000).setConnectTimeout(550000)
                .setConnectionRequestTimeout(550000).setStaleConnectionCheckEnabled(true).build();
        client = HttpClients.custom().setDefaultRequestConfig(defaultRequestConfig).build();
        // client = HttpClients.createDefault();
        URIBuilder uriBuilder = new URIBuilder(url);

        HttpPost httpPost = new HttpPost(uriBuilder.build());
        httpPost.setHeader("Connection", "Keep-Alive");
        httpPost.setHeader("Charset", "UTF-8");
        httpPost.setHeader("Content-Type", "application/x-www-form-urlencoded");
        Iterator<Map.Entry<String, String>> it = map.entrySet().iterator();
        List<NameValuePair> params = new ArrayList<NameValuePair>();

        while (it.hasNext()) {
            Map.Entry<String, String> entry = it.next();
            NameValuePair pair = new BasicNameValuePair(entry.getKey(), entry.getValue());
            params.add(pair);
        }

        httpPost.setEntity(new UrlEncodedFormEntity(params, "UTF-8"));
        try {
            response = client.execute(httpPost);
            if (response != null) {
                HttpEntity resEntity = response.getEntity();
                if (resEntity != null) {
                    result = EntityUtils.toString(resEntity, "UTF-8");
                }
            }
        } catch (ClientProtocolException e) {
            throw new RuntimeException("创建连接失败" + e);
        } catch (IOException e) {
            throw new RuntimeException("创建连接失败" + e);
        }

        return result;
    }

特别说明:form的Content-Type属性为编码方式文章来源地址https://www.toymoban.com/news/detail-528242.html

  • 常用有两种:application/x-www-form-urlencoded和multipart/form-data,默认为application/x-www-form-urlencoded。
  • x-www-form-urlencoded:当action为get时候,浏览器用x-www-form-urlencoded的编码方式把form数据转换成一个字串(name1=value1&name2=value2…),然后把这个字串append到url后面,用?分割,加载这个新的url。
  • multipart/form-data:当action为post时候,浏览器把form数据封装到http body中,然后发送到server。 如果没有type=file的控件,用默认的application/x-www-form-urlencoded就可以了。 但是如果有type=file的话,就要用到multipart/form-data了。浏览器会把整个表单以控件为单位分割,并为每个部分加上Content-Disposition(form-data或者file),Content-Type(默认为text/plain),name(控件name)等信息,并加上分割符(boundary)。

到了这里,关于Java请求调用参数格式为form-data类型的接口的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • requests 库:发送 form-data 格式的 http 请求 (python)

    requests官方网站地址 requests_toolbelt Python自动化 requests 库:发送 form-data 格式的 http 请求 requests-toolbelt · PyPI

    2024年02月03日
    浏览(53)
  • Java发送form-data请求

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

    2024年02月10日
    浏览(44)
  • 前端如何上传图片给后台?如何传递 multipart/form-data 类型的数据?图片大小、格式检查?

    图片上传需要传二进制流,请求头的 content-type 类型需为 multipart/form-data,传递的格式如下图所示 前后端交互通常为: 先调用接口上传二进制流图片 然后再上传表单其他内容(第一步通常会返回后台存储的图片id,第二步会将图片id传递给后台) 注:目前我只用过以上这种方

    2024年04月15日
    浏览(59)
  • java发送form-data请求实现文件上传

    需要请求第三方接口上传文件,该请求类型是form-data请求   注意: 这里的 builder.addPart(\\\"sendfile\\\", new FileBody(file)); , multipartFile 对应form表单的字段名称。 参考:Java发送form-data请求实现文件上传_IceFloe_Rot的博客-CSDN博客

    2024年01月18日
    浏览(63)
  • Jmeter 使用multipart/form-data传递参数,后端拿不到参数数据,同样的请求,同样的参数,postman却可以

    提示:阅读本章之前,请先阅读目录 我遇到了一个怪事,就是同一个接口,同样的参数,同样的数据,postman可以请求,但是jmeter却不行,因为接口需要使用到multipart/form-data的提交方法,所以,出现这个情况,首先,察觉到该问题,主要还是因为multipart/form-data 在jmeter中,你

    2024年02月11日
    浏览(49)
  • Java以form-data(表单)的形式调用第三方接口

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

    2024年02月02日
    浏览(56)
  • JAVA实现postman form-data和raw方式请求数据的代码

    java raw方式 的实现代码如下: Url url = new Url(\\\"\\\"); HttpURLConnection connection = (HttpURLConnection ) url.oepnConnection(); connection.setDoOutput(true); connection.setDoInput(true); connection.setUseCaches(false); connection.setInstanceFollowRedirects(true); connection.setRequestMethod(\\\"POST\\\"); connection.setRequestProperty(\\\"Accept\\\",\\\"application/

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

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

    2024年02月13日
    浏览(39)
  • 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日
    浏览(70)
  • c#HTTP使用form-data发送请求

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

    2024年02月11日
    浏览(55)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包