Java 如何从RestTemplate postForLocation获取字符串响应?
我正在使用Spring框架中的RestTemplate在Java中创建一个REST客户机 一切都很好,直到我不得不用postForLocation做一篇帖子 我正在访问的Web服务返回一个json,其中包含关于POST操作的信息 在PHP中这很好,但我真的不明白如何在Java中使用RestTemplateJava 如何从RestTemplate postForLocation获取字符串响应?,java,spring,rest,Java,Spring,Rest,我正在使用Spring框架中的RestTemplate在Java中创建一个REST客户机 一切都很好,直到我不得不用postForLocation做一篇帖子 我正在访问的Web服务返回一个json,其中包含关于POST操作的信息 在PHP中这很好,但我真的不明白如何在Java中使用RestTemplate public String doLogin() { Map<String, String> args = new HashMap<String, St
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;
}
公共字符串doLogin()
{
Map args=new HashMap();
args.put(“电子邮件”,身份验证用户);
参数put(“令牌”,认证通行证);
String result=restemplate.postForLocation(API_URL+“account/authenticate/?email={email}&token={token}”,String.class,args);
返回结果;
}
这将返回NULL
使用相同的代码,但使用getForObject(当然,将URL更改为正确的内容),我有一个完整的响应,即:
String result=restemplate.getForObject(url,String.class)代码>
所以。。。如何从postForLocation获得响应
注意:如果这个问题是愚蠢的,那么很抱歉。我是Java初学者,方法返回位置头的值。您应该将postForObject
与String
类一起使用,该类返回服务器的响应
所以像这样:
String result = restTemplate.postForObject(API_URL + "account/authenticate/?email={email}&token={token}", String.class, args);
这将以字符串形式返回响应。多亏了其中一个答案,我找到了如何使用postForObject从带有Spring的POST中获取响应的方法
String result = restTemplate.postForObject(API_URL + "account/authenticate/?email="+ AUTH_USER +"&token="+ AUTH_PASS, null, String.class);
由于某些原因,我不能将参数与MAP一起使用,必须将它们内联到URL中。但是对我来说没关系。谢谢你的提示。即便如此,您的代码似乎是错误的(这里有一条错误消息),但我现在已经明白了,并用答案编辑了我的问题。谢谢你应该把“答案”作为答案贴出来。谢谢。。。第一次我需要这样做:]我得到一个字符串数组作为响应,我如何得到这个Alex?嗨@Antony,很抱歉响应太晚了。实际上,我也收到了一个字符串数组作为响应。在这个问题中,我想你们可以理解我是如何做到的:我已经做到了,我被out搞糊涂了,它是PHP序列化字符串,我必须使用PHP序列化程序转换成Java。谢谢