Как я могу передать заголовки, используя RestTemplate? - PullRequest
1 голос
/ 23 января 2020

В моем методе я изначально использовал RestTemplate postForObject метод для отправки запроса в конечную точку. Теперь я должен добавить токен OAuth по умолчанию и передать его как Post запрос. Есть ли способ передать как request, так и Default Header как часть запроса POST, используя postForObject?

Initiall, который я использовал ниже 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();
    }
}

1 Ответ

2 голосов
/ 23 января 2020

Можно ли как-то передать как запрос, так и заголовок по умолчанию как часть запроса POST, используя postForObject?

Да, есть способ сделать это, я могу приведи пример c:

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 );
}

Дай мне знать, если это не сработает !!

...