HttpPost接口请求的数据传输方式

2023-10-14 04:30

本文主要是介绍HttpPost接口请求的数据传输方式,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

第一种:以json字符串的格式传递

xmlInfo是要传递的json字符串(如何把数据转化为json格式可参考我的json转化文章),apiKeyId是我的实际业务需要传递的一个值,不需要可取消,,url是请求路径

  public static String doHttpPostWithSSL(String xmlInfo, String URL,String apiKeyId) {log.info("发起的数据:" + xmlInfo);String result =null;try (CloseableHttpClient client =  new SSLClient()){HttpResponse response = null;HttpEntity responseEntity = null;HttpPost request = new HttpPost();request.setHeader("KeyId", apiKeyId);request.setHeader(APP_CODE, FMS_CODE);request.setHeader("Content-Type", "application/json; charset=utf-8");request.setURI(new URI(URL));request.setEntity(new StringEntity(xmlInfo, "UTF-8"));response = client.execute(request);responseEntity = response.getEntity();result = EntityUtils.toString(responseEntity);} catch (Exception e) {e.printStackTrace();}log.info("返回的数据:" + result);return result;}

这种格式对应的postman演示:
在这里插入图片描述

第二种:以form-data的格式传递

这种格式可传递多种类型的数据,包括file文件,就是类似表单提交

   public static String ocrDistinguish(String jsonString,String url,File file) throws ClientProtocolException, IOException {Map<String,String> map = JsonMapper.MAPPER.toMap(jsonString);MultipartEntityBuilder builder = MultipartEntityBuilder.create().setMode(HttpMultipartMode.BROWSER_COMPATIBLE).setCharset(Charset.forName("UTF-8")).addPart("file", new FileBody(file)).addTextBody("ifNeedOcr", map.get("ifNeedOcr")).addTextBody("pathCode",map.get("pathCode")).addTextBody("reqUuid", map.get("reqUuid")).addTextBody("orgCode", map.get("orgCode")).addTextBody("appId", map.get("appId")).addTextBody("appKey", map.get("appKey")).addTextBody("appSecret", map.get("appSecret"));if (StringUtils.isNotBlank(map.get("fileId"))) builder.addTextBody("fileId", map.get("fileId"));if (StringUtils.isNotBlank(map.get("docType"))) builder.addTextBody("docType", map.get("docType"));return Request.Post(url).socketTimeout(100000).connectTimeout(100000).body(builder.build()).execute().returnContent().asString();}
}

这种格式对应的postman演示:
在这里插入图片描述

这篇关于HttpPost接口请求的数据传输方式的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/208147

相关文章

SpringBoot实现RSA+AES自动接口解密的实战指南

《SpringBoot实现RSA+AES自动接口解密的实战指南》在当今数据泄露频发的网络环境中,接口安全已成为开发者不可忽视的核心议题,RSA+AES混合加密方案因其安全性高、性能优越而被广泛采用,本... 目录一、项目依赖与环境准备1.1 Maven依赖配置1.2 密钥生成与配置二、加密工具类实现2.1

使用Python的requests库调用API接口的详细步骤

《使用Python的requests库调用API接口的详细步骤》使用Python的requests库调用API接口是开发中最常用的方式之一,它简化了HTTP请求的处理流程,以下是详细步骤和实战示例,涵... 目录一、准备工作:安装 requests 库二、基本调用流程(以 RESTful API 为例)1.

使用Python开发一个Ditto剪贴板数据导出工具

《使用Python开发一个Ditto剪贴板数据导出工具》在日常工作中,我们经常需要处理大量的剪贴板数据,下面将介绍如何使用Python的wxPython库开发一个图形化工具,实现从Ditto数据库中读... 目录前言运行结果项目需求分析技术选型核心功能实现1. Ditto数据库结构分析2. 数据库自动定位3

pandas数据的合并concat()和merge()方式

《pandas数据的合并concat()和merge()方式》Pandas中concat沿轴合并数据框(行或列),merge基于键连接(内/外/左/右),concat用于纵向或横向拼接,merge用于... 目录concat() 轴向连接合并(1) join='outer',axis=0(2)join='o

批量导入txt数据到的redis过程

《批量导入txt数据到的redis过程》用户通过将Redis命令逐行写入txt文件,利用管道模式运行客户端,成功执行批量删除以Product*匹配的Key操作,提高了数据清理效率... 目录批量导入txt数据到Redisjs把redis命令按一条 一行写到txt中管道命令运行redis客户端成功了批量删除k

SpringBoot多环境配置数据读取方式

《SpringBoot多环境配置数据读取方式》SpringBoot通过环境隔离机制,支持properties/yaml/yml多格式配置,结合@Value、Environment和@Configura... 目录一、多环境配置的核心思路二、3种配置文件格式详解2.1 properties格式(传统格式)1.

解决pandas无法读取csv文件数据的问题

《解决pandas无法读取csv文件数据的问题》本文讲述作者用Pandas读取CSV文件时因参数设置不当导致数据错位,通过调整delimiter和on_bad_lines参数最终解决问题,并强调正确参... 目录一、前言二、问题复现1. 问题2. 通过 on_bad_lines=‘warn’ 跳过异常数据3

python运用requests模拟浏览器发送请求过程

《python运用requests模拟浏览器发送请求过程》模拟浏览器请求可选用requests处理静态内容,selenium应对动态页面,playwright支持高级自动化,设置代理和超时参数,根据需... 目录使用requests库模拟浏览器请求使用selenium自动化浏览器操作使用playwright

SpringBoot监控API请求耗时的6中解决解决方案

《SpringBoot监控API请求耗时的6中解决解决方案》本文介绍SpringBoot中记录API请求耗时的6种方案,包括手动埋点、AOP切面、拦截器、Filter、事件监听、Micrometer+... 目录1. 简介2.实战案例2.1 手动记录2.2 自定义AOP记录2.3 拦截器技术2.4 使用Fi

C#监听txt文档获取新数据方式

《C#监听txt文档获取新数据方式》文章介绍通过监听txt文件获取最新数据,并实现开机自启动、禁用窗口关闭按钮、阻止Ctrl+C中断及防止程序退出等功能,代码整合于主函数中,供参考学习... 目录前言一、监听txt文档增加数据二、其他功能1. 设置开机自启动2. 禁止控制台窗口关闭按钮3. 阻止Ctrl +