[在我的方法中,我最初使用RestTemplate postForObject
方法将请求发布到端点。现在,我必须添加默认的OAuth
令牌并将其作为Post
请求传递。有什么方法可以通过使用request
传递Default Header
和postForObject
作为POST请求的一部分吗?
我在postForObject
以下使用的初始名称
String result = restTemplate.postForObject(url, request, String.class);
我正在寻找类似下面的内容
restTemplate.exchange(
url,
HttpMethod.POST,
getHttpEntity(),
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 {
String oneString = String.join(",", results);
Map<String, String> requestBody = new HashMap<>();
requestBody.put("news", oneString);
requestBody.put("start", "aws");
JSONObject jsonObject = new JSONObject(requestBody);
HttpEntity<String> request = new HttpEntity<String>(jsonObject.toString(), headers);
String result = restTemplate.postForObject(url, request, String.class);
}
}
下面是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
{
Object lResponseJson = mRestTemplate.postForObject( url, new HttpEntity<Object>( payload, lHttpHeaders ), response );
return lResponseJson;
}
catch( Exception lExcp )
{
logger.error( lExcp.getMessage(), lExcp );
}