[英]How can I pass headers using RestTemplate?
在我的方法中,我最初使用RestTemplate postForObject
方法將請求發布到端點。 現在我必須添加默認的OAuth
令牌並將其作為Post
請求傳遞。 有什么方法可以使用postForObject
將request
和Default Header
作為 POST 請求的一部分postForObject
嗎?
最初我在postForObject
下面postForObject
String result = restTemplate.postForObject(url, request, String.class);
我正在尋找類似下面的東西
restTemplate.exchange(url,HttpMethod.POST,getEntity(),String.class );
這是我的代碼
private final String url;
private final MarkBuild header;
public DataImpl(@Qualifier(OAuth) MarkBuild header,RestTemplate restTemplate) {
this.restTemplate= restTemplate;
this.header = header;
}
public void postJson(Set<String> results){
try {
Map<String, String> requestBody = new HashMap<>();
requestBody.put("news", "data");
JSONObject jsonObject = new JSONObject(requestBody);
HttpEntity<String> request = new HttpEntity<String>(jsonObject.toString(), null);
String result = restTemplate.postForObject(url, request, String.class);
}
}
下面是我想通過 Post 請求傳遞的getHttpEntity
private HttpEntity getHttpEntity(Set <String>results) {
return new HttpEntity<>( null, getHttpHeaders() );
}
private HttpHeaders getHttpHeaders() {
return header.build();
}
}
有什么方法可以使用 postForObject 將請求和默認標頭作為 POST 請求的一部分傳遞嗎?
是的,有一種方法可以做到這一點,我可以舉一個基本的例子:
HttpHeaders lHttpHeaders = new HttpHeaders();
lHttpHeaders.setContentType( MediaType.APPLICATION_JSON );//or whatever it's in your case
String payload="<PAYLOAD HERE>"
try
{
String lResponseJson = mRestTemplate.postForObject( url, new HttpEntity<Object>( payload, lHttpHeaders ), String.class);
return lResponseJson;
}
catch( Exception lExcp )
{
logger.error( lExcp.getMessage(), lExcp );
}
如果這不起作用,請告訴我!!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.