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

RestTemplate使用情况

东深
2023-03-14

我试图使用resttemplate来生成put。出于某种原因,我无法重现我使用curl创建的put,该代码可以毫无问题地运行。

下面是我的curl调用成功并返回200:

curl https://www.exampe.com \
  -X PUT \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer <bearer-token>" \
  -v \
  -d '{"json":"object"}'
boolean result = false; 
String url = "https://www.example.com";
String json = "{\"json\":\"object\"}";

RestTemplate rest = new RestTemplate();

HttpHeaders headers = new HttpHeaders();
headers.add("Content-Type", "application/json");
headers.add("Authorization", String.format("Bearer %s", authToken));

HttpEntity<String> requestEntity = new HttpEntity<String>(json, headers);
ResponseEntity<String> responseEntity = 
        rest.exchange(url, HttpMethod.PUT, requestEntity, String.class);

HttpStatus status = responseEntity.getStatusCode();

共有1个答案

禄豪
2023-03-14

啊,真蠢。缺少的部分是accept标头。显然,curl默认添加accept:*/*。可能是endpoint实现需要正确的accept标头。增加这一行就解决了问题:

headers.add("Accept", "*/*");
 类似资料:
  • 我正在发送API和接收状态代码400与我需要解析的正文 在使用RestTemplate时,我无法解析响应: 在这种情况下,我怎么还能得到正文/标题?我必须使用RestTemplate的替代方案吗? 此外,当我在内遇到捕获异常时,如何返回到请求上下文:

  • 问题内容: 我正在使用URL类从中读取InputStream。有什么我可以使用RestTemplate的方法吗? 我怎样才能 用,而不是使用? 问题答案: 您不应该直接获得。旨在封装处理响应(和请求)内容。它的优势在于处理所有IO,并为您提供现成的Java对象。 的一位原始作者Brian Clozel 表示: 并不意味着流响应主体;它的合同不允许这样做,而且已经存在了很长时间,以至于在不中断许多应

  • 这就是我如何尝试使用RestTemplate调用服务器, 这就是我如何使用它(用于测试) 我的登录响应类及其子类, null null null null 公共类BaseResponse{ 受保护字符串StatusCode; 我的问题是,1。为什么调用服务器时会出现此错误 信息:org.springframework.beans.factory.support.defaultListableBea

  • 我试图通过exchange方法用Spring RestTemplate做一个带有主体的HTTP删除请求,但我总是收到一个400个错误的请求,就像这个问题一样。使用JavaScript和其他工具,可以使用delete调用这个API。我知道java<1.8确实支持DELETE with body,但在1.8中应该可以:参见此处。我使用的是带有jdk 1.8的Spring-Web-4.2.6.Relea

  • 我使用URL类从中读取InputStream。有什么方法可以使用RestTemplate实现这一点吗? 如何使用RestTemplate而不是使用URL来获取InputStream?

  • 我有两个endpoint。一个endpoint将从Postman接收文件,并应使用< code>RestTemplate将相同的文件预先发送给另一个endpoint。 正在调用第二个终结点,但没有文件。 O/P: