我需要使用需要 header、body 和 params 的 restful api。
有什么方法可以將引數、正文和標頭與 resttemplate 一起發送?
uj5u.com熱心網友回復:
這就是你可以做到的-> https://attacomsian.com/blog/spring-boot-resttemplate-post-request-json-headers
uj5u.com熱心網友回復:
您可以嘗試 Webclient 將訊息發布到特定的 e/p,參考 - https://medium.com/p/9863094bac3 for ex-
UriCimponenets uriComponents =UriComponentsBuilds.fromHttpUrl(“http://endpoint/{param}")
.buildAndExpand(inputParam);
HttpHeaders headers= new HttpHeaders ();
Webclient webclient;
//post response status of operation .
String response=webclient.method(HttpMethod.POST)
.uri (uriComponents.toUri())
.headers(httpHeaders-> {
httpHeaders.add(“key”,”value”);
})
.contentType(MediaType.APPLICATION_JSON)
.body(BodyInserters.fromValue(<jsonStringBody>))
.exchange()
.flatMap(clientResponse -> {
if(clientResponse.statusCode().is4xxClientError())
{
clientResponse-> {clientResponse.bodyToMono(String.class).subscriber(errorBody->log.error(error.Body));
return Mono.Error(new ResponseStatusException(clientResponse.statusCode()));
}
else
return clientResponse.bodyToMono(String.class); })
.doOnSuccess(clientResposne -> { log.info(“Response: {}”,clientResponse)})
.block(Duration,ofSeconds(50));
uj5u.com熱心網友回復:
這是一個使用 RestTemplate 發送 Post 請求的簡單示例:
// pretend RestTemplate already initialized
String url = "your url";
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION.JSON); // whatever u want
headers.set("KEY", "VALUE");
HttpEntity requestHeader = new HttpEntity(headers);
// set url, header, and Type of value to be returned from the request
ResponseEntity<?> response = restTemplate.postForEntity(url, requestHeader, String.class);
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/431775.html
