如何通过Spring发送带有标题的GET请求
它将通过GET请求调用另一个RESTAPI如何通过Spring发送带有标题的GET请求,spring,rest,jakarta-ee,Spring,Rest,Jakarta Ee,它将通过GET请求调用另一个RESTAPI @RequestMapping(value = "xxxx/{id}", method = RequestMethod.GET) public @ResponseBody GetObjet GET( @PathVariable("id") String id, @RequestHeader(value="X-Auth-Token") String Token) { RestTemplate restTempla
@RequestMapping(value = "xxxx/{id}", method = RequestMethod.GET)
public @ResponseBody GetObjet GET( @PathVariable("id") String id,
@RequestHeader(value="X-Auth-Token") String Token) {
RestTemplate restTemplate = new RestTemplate();
HttpHeaders headers = new HttpHeaders();
headers.add("X-Auth-Token", Token);
HttpEntity entity = new HttpEntity(headers);
ResponseEntity<GetObjet> response = restTemplate.exchange(url, HttpMethod.GET, entity, GetObjet.class);
return response.getBody();
}
@RequestMapping(value=“xxxx/{id}”,method=RequestMethod.GET)
public@ResponseBody GetObjet GET(@PathVariable(“id”)字符串id,
@RequestHeader(value=“X-Auth-Token”)字符串令牌){
RestTemplate RestTemplate=新RestTemplate();
HttpHeaders=新的HttpHeaders();
添加(“X-Auth-Token”,Token);
HttpEntity=新的HttpEntity(标题);
ResponseEntity response=restemplate.exchange(url,HttpMethod.GET,entity,GetObjet.class);
返回response.getBody();
}
总是有400个错误。这意味着错误的请求或请求正文中的某些错误。但是这是GET,所以resquest body总是空的。因此,这种添加标题的方法可能不正确。有什么想法吗?尝试使用:
RestTemplate.getForEntity(url, GetObject.class);
您有一些方法可以从rest API请求数据,例如
getForEntity
和getForObject
,请使用所需的方法。您可以在方法中获取包含符号@RequestHeader
的标头
public void displayHeaderInfo(@RequestHeader("Accept-Encoding") String encoding,
@RequestHeader("Keep-Alive") long keepAlive) {
}
o
另一种获取URL的方法是:
@RequestMapping(value = "/restURL")
public String serveRest(@RequestBody String body, @RequestHeader HttpHeaders headers){
//Use headers to get the information about all the request headers
long contentLength = headers.getContentLength();
...
StreamSource source = new StreamSource(new StringReader(body));
YourObject obj = (YourObject) jaxb2Mashaller.unmarshal(source);
...
}
什么是
url
?为什么要将此代码放在侦听GET
请求的方法中?您是否尝试将代码的客户端部分用作独立客户端而不是服务器的一部分?@LutzHorn url是另一个rest api的地址。回答你的问题有点复杂。我需要我的api来调用另一个api。我知道这不好,但由于我的私人问题,我没有选择,但是通过这种方式,我们如何添加标题?但现在的问题是,当我们发送带有标题的GET请求时,restemplate.exchange不起作用