web-dev-qa-db-ja.com

SpringでRestTemplateのpostForObject()メソッドにヘッダーを追加する

以下のメソッドを使用してWebサービスを呼び出しています。

ResponseBean responseBean = getRestTemplate()
    .postForObject(url, customerBean, ResponseBean.class);

今、私の要件が変更されました。リクエストで2つのヘッダーを送信したい。どうすればいいですか?

カスタマBeanは、リクエスト本文として使用されるすべてのデータを含むクラスです。

この場合、ヘッダーを追加する方法は?

12
Sadashiv

HttpEntity<T>を目的に使用できます。例えば:

CustomerBean customerBean = new CustomerBean();
// ...

HttpHeaders headers = new HttpHeaders();
headers.set("headername", "headervalue");      

HttpEntity<CustomerBean> request = new HttpEntity<>(customerBean, headers);

ResponseBean response = restTemplate.postForObject(url, request, ResponseBean.class); 
34

org.springframework.http.HttpHeadersヘッダーを作成し、CustomBeanを追加します。 Sthは次のようになります。

 CustomerBean customerBean = new CustomerBean();
 HttpHeaders headers = new HttpHeaders();

// can set the content Type
headers.setContentType(MediaType.APPLICATION_JSON);

//Can add token for the authorization
headers.add(HttpHeaders.AUTHORIZATION, "Token");

headers.add("headerINfo", "data");

//put your customBean to header
HttpEntity< CustomerBean > entity = new HttpEntity<>(customBean, headers);
//can post and get the ResponseBean 
restTemplate.postForObject(url, entity, ResponseBean.class);
//Or return the ResponseEntity<T>  

この助けを願っています。

6
Kenny Tai Huynh