2
是否可以使用Spring RestTemplate將原始JSON傳遞給Rest API?可能使用Spring RestTemplate將原始JSON傳遞給Rest API?
我試圖如下:
List<HttpMessageConverter<?>> httpMessageConverters = new ArrayList<HttpMessageConverter<?>>();
httpMessageConverters.add(new MappingJacksonHttpMessageConverter());
restTemplate.setMessageConverters(httpMessageConverters);
String jsonText = // raw JSON
httpHeaders.setContentType(MediaType.APPLICATION_JSON);
HttpEntity<?> entity = new HttpEntity<Object>(jsonText, httpHeaders);
restTemplate.exchange(url, HttpMethod.POST, entity, responseClass);
當我調用這個要求,我得到一個HTTP 400錯誤響應,意思是錯誤的請求。但是,所有標題和JSON正文與使用我擁有的HTTP客戶端提交的相同。
相比之下,下面當我創建了MyRequest對象,並設置它的HttpEntity正常工作:
List<HttpMessageConverter<?>> httpMessageConverters = new ArrayList<HttpMessageConverter<?>>();
httpMessageConverters.add(new MappingJacksonHttpMessageConverter());
restTemplate.setMessageConverters(httpMessageConverters);
MyRequest myRequest = new MyRequest();
httpHeaders.setContentType(MediaType.APPLICATION_JSON);
HttpEntity<?> entity = new HttpEntity<Object>(myRequest, httpHeaders);
restTemplate.exchange(url, HttpMethod.POST, entity, responseClass);
因此,我想知道我怎麼能以String格式使用原始JSON調用我的REST API?
你試過沒有設置信息轉換器,因爲您不希望您的信息被轉換成什麼做?另外,爲什麼不讓它成爲'HttpEntity'? –