【发布时间】:2014-02-28 19:49:25
【问题描述】:
如何发送 POST 请求,其中必须是消息正文中的查询参数?
我试过了:
MultiValueMap<String, String> map = new LinkedMultiValueMap<String, String>();
map.add("name", "xx");
map.add("password", "xx");
restTemplate.postForObject("URL", map, Response.class);
但它不起作用。我想将数据发送到 bitstamp api。
编辑:我的春豆似乎:
<bean id="restTemplate" class="org.springframework.web.client.RestTemplate">
<property name="messageConverters">
<list>
<bean class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter" />
</list>
</property>
</bean>
编辑 2:我的代码似乎
List<MediaType> acceptableMediaTypes = new ArrayList<MediaType>();
acceptableMediaTypes.add(MediaType.APPLICATION_JSON);// or any other
HttpHeaders headers = new HttpHeaders();
headers.setAccept(acceptableMediaTypes);
HttpEntity<String> requestEntity = new HttpEntity<String>("key=XX&nonce=XX&signature=XX", headers);
ResponseEntity<AccountBalance> responseEntity = restTemplate.exchange(
"https://www.bitstamp.net/api/balance/", HttpMethod.POST, requestEntity, AccountBalance.class);
现在的响应是:缺少密钥、签名和随机数参数
但应该是:找不到 API 密钥
【问题讨论】:
-
query parameters in message body这是自相矛盾的。查询参数在url中,请求体就是请求体。 -
是的,但是我在 SOAPUI 中做了,并且在正文中有按钮发布查询字符串,然后它就可以工作了。我不能用 restTemplate 得到相同的结果 :-(
-
好的,那么如何使用 restTemplate 在请求正文中发送数据?因为,它对我不起作用。
-
您似乎缺少一些核心 REST 概念。也许从这里开始:spring.io/blog/2009/03/27/rest-in-spring-3-resttemplate 但您可能需要先对 REST 有更基本的了解。