首页 > 其他分享 >data参数

data参数

时间:2024-04-26 13:22:25浏览次数:25  
标签:HttpEntity entity headers 参数 new data response

大部分时间都是'Content-Type': 'application/json',flask_appbuilder的服务中很多接口是 multipart/form-data;,

用python调用时,通常情况下

data = json.dumps({ "catalogCode":"region","pageNo": 1, "pageSize": 1000})
headers = {'Token': Token, 'Accept': 'application/json', 'Content-Type': 'application/json;charset=utf-8'}
r = requests.post(user_url, headers=headers, data=data)```


form-data时需要如下

data ={ "catalogCode":"region","pageNo": 1, "pageSize": 1000} headers = {'Token': Token}

r = requests.post(user_url, headers=headers, data=data)

但是在java中,不只是改为'Content-Type': 'multipart/form-data'

还需要用MultiValueMap

```java


 HttpEntity entity = new HttpEntity(req.getRequestBody(), headers);

 HttpEntity<MultiValueMap<String, String>> entity = new HttpEntity<>(map, headers);
ResponseEntity response = restTemplate.exchange(url, httpMethod, entity, respTypes)
if (response != null) {
                    int status = response.getStatusCode().value();
                    rsp.setStatus(status);
                    HttpHeaders rspHeaders = response.getHeaders();
                    if (rspHeaders != null) {
                        Map<String, String> rspHeaderMap = new HashMap<>(8);
                        for (Map.Entry<String, List<String>> entry : rspHeaders.entrySet()) {
                            rspHeaderMap.put(entry.getKey(), entry.getValue().toString());
                        }
                        rsp.setHeader(rspHeaderMap);
                    }
                    rsp.setBody(response.getBody());```


这里要改为

```java
 LinkedHashMap linkedHashMap= (LinkedHashMap)req.getRequestBody();
            headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED);
            MultiValueMap<String, Object> map = new LinkedMultiValueMap<>();
            Iterator it = linkedHashMap.entrySet().iterator();
            while (it.hasNext()){
                Map.Entry entry = (Map.Entry)it.next();
                map.add((String)entry.getKey(),entry.getValue());
            }

            HttpEntity<MultiValueMap<String, Object>> entity = new HttpEntity<>(map, headers);
//            HttpEntity<MultiValueMap<String, String>> entity = new HttpEntity<>(map, headers);

            ParameterizedTypeReference<BaseResponse> respTypes = new ParameterizedTypeReference<BaseResponse>() {};

            try {
                RestTemplate rt = new RestTemplate();

                BaseResponse response =rt.postForObject("http://127.0.0.1:8550/edit/12",
                        entity, BaseResponse.class);```


 

 

 

 

 

标签:HttpEntity,entity,headers,参数,new,data,response
From: https://www.cnblogs.com/bigleft/p/18159844

相关文章

  • DataGear 5.0.0 新特性之dgMap图表选项
    DataGear企业版1.1.0已发布!http://datagear.tech/pro/DataGear在新发布的5.0.0版本中,重构了地图类图表,新增了dgMap图表选项,可以更方便灵活地设置图表地图。在5.0.0版本之前,由于没有图表地图选项,无法在新建图表时设置地图,只能在将图表加入看板后,通过看板提供的dg-chart-m......
  • bash脚本的输入参数解析
    #!/usr/bin/envbash#############################################用途:用于脚本输入参数的规范处理#测试:假设文件名为test.sh,执行./test.sh--daemon--helper=abc--host_type=os############################################curdir=`dirname"$0"`echo"curdi......
  • js逆向实战之喜马拉雅Xm-Sign参数解密
    url:https://www.ximalaya.com/channel/11/分析过程抓包,关注有页面数据回显的数据包。该url的请求头中有个加密的参数,找到该参数的加密过程。由于该参数名比较不常见,可以直接全局搜索这个参数名。只有一处,打断点。切换页码,触发断点。非常直接,xm-sign是由d.getS......
  • 使用 ForAttributeWithMetadataName 提高 IIncrementalGenerator 增量 Source Generat
    本文将告诉大家如何使用ForAttributeWithMetadataName方法用来提高IIncrementalGenerator增量SourceGenerator源代码生成的开发效率以及提高源代码生成器的运行效率这是一个在2022的6月15才合入的新功能。原因是Roslyn团队发现了大量的源代码生成器和分析器项目都......
  • wpf DataTemplate 动态模板内容
     <DataGridTemplateColumnWidth="50"Header="选择">              <DataGridTemplateColumn.CellTemplate>                <DataTemplate>                       ......
  • Pandas read_csv 参数详解
    前言在使用Pandas进行数据分析和处理时,read_csv是一个非常常用的函数,用于从CSV文件中读取数据并将其转换成DataFrame对象。read_csv函数具有多个参数,可以根据不同的需求进行灵活的配置。本文将详细介绍read_csv函数的各个参数及其用法,帮助大家更好地理解和利用这一功......
  • Electron打包的时候路径出现问题!include: could not find: "C:\Users\xxxx\AppDat
    !include:couldnotopenfile:"C:\ztg\projects\electron-vite-vue-ts\node_modules\.pnpm\[email protected][email protected][email protected]_dmg-bui_lrspnoputfiosacwyigcypdbdi\node_modules\app-builder-lib\t......
  • springboot+mybatisplus+dynicDatasource 从数据库表中查询数据源 动态添加
    1、pom依赖<parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.7.12</version><relativePath/><!--lookuppa......
  • centos8.2报错Failed to download metadata for repo 'BaseOS': Cannot prepare inter
    报错CentOS-8-Base68B/s|38B00:00错误:Failedtodownloadmetadataforrepo'BaseOS':......
  • springboot mybatis-plus dynamic-datasource实现
    基础架构是springboot+mybatis-plus实现动态数据源步骤步骤1:pom文件<parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.7.12</version>......