Java 如何从RestTemplate postForLocation获取字符串响应?

Java 如何从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

我正在使用Spring框架中的RestTemplate在Java中创建一个REST客户机

一切都很好,直到我不得不用postForLocation做一篇帖子

我正在访问的Web服务返回一个json,其中包含关于POST操作的信息

在PHP中这很好,但我真的不明白如何在Java中使用RestTemplate

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。谢谢