我试图使用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();
啊,真蠢。缺少的部分是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: