如何使用RestTemplate传递标题?

问题描述 投票:1回答:1

[在我的方法中,我最初使用RestTemplate postForObject方法将请求发布到端点。现在,我必须添加默认的OAuth令牌并将其作为Post请求传递。有什么方法可以通过使用request传递Default HeaderpostForObject作为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();
    }
}
java spring-boot post http-headers resttemplate
1个回答
0
投票

有什么方法可以同时传递请求和默认标头?使用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 );
}
© www.soinside.com 2019 - 2024. All rights reserved.