当前位置: 首页 > 知识库问答 >
问题:

如何通过spring RestTemplate更改get请求中的响应http头?

施令秋
2023-03-14

我有一个简单的java spring方法来创建对象

RestTemplate restTemplate = new RestTemplate();
Address address = restTemplate.getForObject(url, Address.class);

无法提取响应:找不到响应类型[class Address]和内容类型[text/plain;charset=UTF-8]的合适的HttpMessageConverter

因此,我认为,我需要更改响应头内容类型,以正确的application/JSON,以便MappingJackson2HttpMessageConverter找到JSON字符串并运行代码。

共有1个答案

沈乐邦
2023-03-14

尝试了一个小时后,我找到了一个短而简单的方法。

默认情况下,Json转换器只支持“application/Json”。我们只是重写它以支持“text/plain”。

MappingJackson2HttpMessageConverter converter = new MappingJackson2HttpMessageConverter();

// support "text/plain"
converter.setSupportedMediaTypes(Arrays.asList(TEXT_PLAIN, APPLICATION_JSON));

RestTemplate template = new RestTemplate();
template.getMessageConverters().add(converter);

// It's ok now
MyResult result = tmp.postForObject("http://url:8080/api", 
            new MyRequest("param value"), MyResult.class);
 类似资料:
  • 我已经用Apache camel XML模式实现了以下路由。 功能按预期发生。但是camel返回HTTP 500,并提到以下错误。 场景的请求响应流

  • 问题内容: 我有一个简单的代码,可为文本文件(url_list.txt)中列出的每个URL打印GET响应时间。 当顺序触发请求时,返回的时间对应于各个URL的预期响应时间。 但是,当同时执行相同的代码时,返回的响应时间通常比预期的要高。 看来我在http.Get(url)调用之前捕获的 time_start 并不是实际发送请求的时间。我猜http.Get(url)的执行排队了一段时间。 使用gor

  • 问题内容: 我需要在JavaScript中执行HTTPGET请求。最好的方法是什么? 我需要在Mac OS X破折号小部件中执行此操作。 问题答案: 浏览器(和Dashcode)提供XMLHttpRequest对象,该对象可用于从JavaScript发出HTTP请求: 但是,不鼓励同步请求,并且将按照以下方式生成警告: 注意:从Gecko 30.0(Firefox 30.0 / Thunderbi

  • 问题内容: 如何通过 HTTPS* 发送ajax GET 请求? * 抛出这个: 是否有其他方法或解决方法可以使此工作正常进行? 如果我使用 Chrome 浏览到该网址,则可以得到响应。我认为没有理由为什么它不能在ajax请求上正常工作。 问题答案: 如果您由于当前处于 同一来源策略 而无法访问该页面,则无法向该页面发出AJAX请求。 **** 的 主机 , 端口 和 方案 (协议)必须在为了使A

  • 嗨,我正在通过axios尝试reactjs POST请求,但出现错误,我查看了所有文档,但错误未得到解决。 这是我的错误: 未捕获(promise中)错误:请求在XMLHttpRequest的结算(eval at(bundle.js:4621),:15:15)处的createError(eval at(bundle.js:4615),:18:12)处失败,状态代码为400。手工装载(在(捆js:4

  • 网络爬虫工作过程可以理解为模拟浏览器操作的过程,浏览器的主要功能是向服务器发出请求,在浏览器窗口中展示服务器返回的网络资源。 一、浏览器处理网页的过程 我们先来看一下浏览网页的基本过程,比如我们在浏览器地址栏输入:http://www.baidu.com 回车后会浏览器会显示百度的首页。 这段网络通信过程中到底发生了什么?简单来说这段过程发生了以下四个步骤: 当我们在浏览器输入URL http:/