如何使用 RestTemplate 传递 headers?
How can I pass headers using RestTemplate?
在我的方法中,我最初使用 RestTemplate postForObject
方法向端点 post 请求。现在我必须添加默认 OAuth
令牌并将其作为 Post
请求传递。有什么方法可以通过使用 postForObject
?
作为 POST 请求的一部分同时传递 request
和 Default Header
下面我用的初始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);
}
}
下面是 getHttpEntity
我想通过 Post 请求
private HttpEntity getHttpEntity(Set <String>results) {
return new HttpEntity<>( null, getHttpHeaders() );
}
private HttpHeaders getHttpHeaders() {
return header.build();
}
}
Is there any way I can pass both request as well as Default Header as
part of POST request by using postForObject?
是的,有办法做到这一点,我可以举一个基本的例子:
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 );
}
如果这不起作用请告诉我!!
在我的方法中,我最初使用 RestTemplate postForObject
方法向端点 post 请求。现在我必须添加默认 OAuth
令牌并将其作为 Post
请求传递。有什么方法可以通过使用 postForObject
?
request
和 Default Header
下面我用的初始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);
}
}
下面是 getHttpEntity
我想通过 Post 请求
private HttpEntity getHttpEntity(Set <String>results) {
return new HttpEntity<>( null, getHttpHeaders() );
}
private HttpHeaders getHttpHeaders() {
return header.build();
}
}
Is there any way I can pass both request as well as Default Header as part of POST request by using postForObject?
是的,有办法做到这一点,我可以举一个基本的例子:
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 );
}
如果这不起作用请告诉我!!