本文介紹了用于發布帶有自定義頭和請求對象的請求的Spring RestTemplate的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!
問題描述
在Spring RestTemplate中,有一種方法可以將自定義頭與POST請求對象一起發送。我已經嘗試了可用的exchange
方法。我們似乎可以將鍵值對與自定義頭一起發送,但不能發送附加到HttpEntity.
的請求對象本身。下面的代碼演示了這種嘗試,對于服務器似乎是400 BadRequest
。
HttpHeaders requestHeaders = new HttpHeaders();
requestHeaders.setContentType(MediaType.APPLICATION_JSON);
HttpEntity<?> httpEntity = new HttpEntity<Object>(requestDTO, requestHeaders);
RestTemplate restTemplate = new RestTemplate();
restTemplate.exchange(URL, HttpMethod.POST, httpEntity, SomeObject.class);
有人知道這種情況嗎?或者這是我不可能嘗試去做的事情?
推薦答案
可以,如果使用多值映射頭而不是HttpHeaders
示例:
MultiValueMap<String, String> headers = new LinkedMultiValueMap<String, String>();
headers.add("Authorization", "Basic " + base64Creds);
headers.add("Content-Type", "application/json");
RestTemplate restTemplate = new RestTemplate();
restTemplate.getMessageConverters().add(new MappingJackson2HttpMessageConverter());
HttpEntity<ObjectToPass> request = new HttpEntity<ObjectToPass>(objectToPassInstance, headers);
restTemplate.postForObject(urlPost, request, Boolean.class);
Boolan.class只是因為我的控制器在此終結點返回Boolean(可以是任何值)
祝編碼好運!
這篇關于用于發布帶有自定義頭和請求對象的請求的Spring RestTemplate的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,