我正在使用Spring Framework中的RestTemplate在Java中创建REST客户端.
一切都很好,直到我必须使用postForLocation做一个帖子.
我有权访问的webservice返回一个json,其中包含有关POST ACTION的信息.
在PHP中它很好,但我真的不明白如何使用RestTemplate在Java中做.
public String doLogin()
{
Map<String, String> args = new HashMap<String, String>();
args.put("email", AUTH_USER);
args.put("token", AUTH_PASS);
String result = restTemplate.postForLocation(API_URL + "account/authenticate/?email={email}&token={token}", String.class, args);
return result;
}
Run Code Online (Sandbox Code Playgroud)
这返回NULL.
使用相同的代码,但使用getForObject(当然,将URL更改为正确的)我有一个完整的响应.
那么......如何从postForLocation获得RESPONSE ?
Obs:对不起,如果这个问题很愚蠢.我是Java的初学者
该postForLocation方法返回Location标头的值.您应该使用postForObject,它返回服务器的响应.
像这样:
String result = restTemplate.postForObject(API_URL + "account/authenticate/?email={email}&token={token}", String.class, args);
Run Code Online (Sandbox Code Playgroud)
这将以字符串形式返回响应.
感谢答案之一,我已经弄清楚如何使用 postForObject 从 Spring 的 POST 中获取响应
String result = restTemplate.postForObject(API_URL + "account/authenticate/?email="+ AUTH_USER +"&token="+ AUTH_PASS, null, String.class);
Run Code Online (Sandbox Code Playgroud)
由于某种原因,我无法在 MAP 中使用参数,并且必须将它们内联到 URL 中。但这对我来说很好。
| 归档时间: |
|
| 查看次数: |
33156 次 |
| 最近记录: |