Error while extracting response for type [class xxx] and content type application/xml;charset=UTF-8

简介: Error while extracting response for type [class xxx] and content type application/xml;charset=UTF-8

强烈推荐一个大神的人工智能的教程:http://www.captainai.net/zhanghan


【前言】


       最近在用restTemplate进行一次http请求时发现了报错(Error while extracting response for type [class xxx] and content type application/xml;charset=UTF-8)经过一番尝试后最终解决问题,在此记录一下。


【问题及解决】


       一、封装http调用的方法如下:


public <T> ResponseEntity<T> postJson(String url, String requestJson, Class<T> responseType) {
    HttpHeaders headers = new HttpHeaders();
    headers.setContentType(MediaType.APPLICATION_JSON_UTF8);
    HttpEntity<String> entity = new HttpEntity<>(requestJson, headers);
    ResponseEntity<T> responseEntity;
    System.out.println(requestJson);
    responseEntity = restTemplate.exchange(url, HttpMethod.POST, entity, responseType);
    return responseEntity;
  }


       二、提供方为的出参和入参均为json格式;


       三、单步进行调试发现报如下错:


1635dbc69a973fbc560cb747590b9602_watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3UwMTI4MjkxMjQ=,size_16,color_FFFFFF,t_70.jpg


       四、在网上查了一些资料并进行了相关验证,对调用方法设置对返回值的格式为json即可解决,相应代码如下:


public <T> ResponseEntity<T> postJson(String url, String requestJson, Class<T> responseType) {
    HttpHeaders headers = new HttpHeaders();
    headers.setContentType(MediaType.APPLICATION_JSON_UTF8);
    //设置接收返回值的格式为json
    List<MediaType> mediaTypeList = new ArrayList<>();
    mediaTypeList.add(MediaType.APPLICATION_JSON_UTF8);
    headers.setAccept(mediaTypeList);
    HttpEntity<String> entity = new HttpEntity<>(requestJson, headers);
    ResponseEntity<T> responseEntity;
    System.out.println(requestJson);
    responseEntity = restTemplate.exchange(url, HttpMethod.POST, entity, responseType);
    return responseEntity;
  }


【小结】


      在之前的项目中不用设置接收值的格式也是可以的,之前系统用的SpringBoot版本是1.5.x,现在的项目是将Spring Boot版本升级到2.x;在进行新项目的开发时建议使用比较新的稳定版本的框架,如果是迁移则建议沿用老版本,如果老版本代码向新框架迁移一定要进行全流程的测试,不然可能会有新老版本不兼容而导致的bug。


相关文章
|
4天前
|
存储 网络安全
Curl error (60): SSL peer certificate or SSH remote key was not OK for https://update.cs2c.com.cn/NS/V10/V10SP2/os/adv/lic/base/x86_64/repodata/repomd.xml [SSL: no alternative certificate subject name matches target host name 'update.cs2c.com.cn']
【10月更文挑战第30天】在尝试从麒麟软件仓库(ks10-adv-os)下载元数据时,遇到 SSL 证书验证问题。错误提示为:`Curl error (60): SSL peer certificate or SSH remote key was not OK`。可能原因包括证书不被信任、证书与域名不匹配或网络问题。解决方法包括检查网络连接、导入 SSL 证书、禁用 SSL 证书验证(不推荐)、联系仓库管理员、检查系统时间和尝试其他镜像。
12 1
|
5月前
|
XML 数据格式
Xml declaration should precede all document content
Xml declaration should precede all document content
|
6月前
|
openCL 开发工具 异构计算
mtk make:*** [xml_parser] Error 255
mtk make:*** [xml_parser] Error 255
38 0
|
6月前
|
XML Android开发 数据格式
Caused by: android.view.InflateException: Binary XML file line #11: Error inflating class
Caused by: android.view.InflateException: Binary XML file line #11: Error inflating class
56 0
|
6月前
|
XML 数据格式
restTemplat发post请求报错Content type ‘application/xml;charset=UTF-8‘ not supported“
restTemplat发post请求报错Content type ‘application/xml;charset=UTF-8‘ not supported“
242 1
|
6月前
|
XML Android开发 数据格式
Error obtaining Ul hierarchy Reason_ Error while obtaining Ul hierarchy XML file
Error obtaining Ul hierarchy Reason_ Error while obtaining Ul hierarchy XML file
76 0
|
XML Android开发 数据格式
Android Binary XML file line #50: Error inflating class androidx.cardview.widget.CardView 错误
Android Binary XML file line #50: Error inflating class androidx.cardview.widget.CardView 错误
85 0
|
XML 数据安全/隐私保护 数据格式
Minio出现Non-XML response from server. Response code: 400, Content-Type: text/xml; ch的解决
Minio出现Non-XML response from server. Response code: 400, Content-Type: text/xml; ch的解决
3298 0
|
XML 安全 Android开发
解决 WebView 报错 Binary XML file line #7 Error inflating class android.webkit.WebView
解决 WebView 报错 Binary XML file line #7 Error inflating class android.webkit.WebView
656 0
|
算法 Java
Error:java: 不允许在使用 --release 时从系统模块 java.xml 导出程序包:
Error:java: 不允许在使用 --release 时从系统模块 java.xml 导出程序包:
687 0
Error:java: 不允许在使用 --release 时从系统模块 java.xml 导出程序包: