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'? –