2017-03-08 1458 views
1

我想发送邮件消息到身份验证服务器,我正在使用postforobject。当我运行该程序,我得到“在线程异常‘主要’org.springframework.web.client.HttpClientErrorException:401空”错误RestTemplate postForObject返回HttpClientErrorException:401 null

RestTemplate rest = new RestTemplate(); 
    String responseEntity; 
    String uri = "http://..."; 
    responseEntity = rest.postForObject(uri, null, String.class); 
    System.out.println(responseEntity); 

我也试过

responseEntity = rest.postForObject(uri, "", String.class); 

同样的结果,它没有工作。

当我使用简单的REST客户端它的工作原理 enter image description here

任何想法?

+0

你试过一个空字符串而不是null吗? –

+0

是的,我尝试过。它没有工作 – Sefa

+0

你如何发送认证参数? – Coder

回答

4

401 null可能意味着服务器预期某种形式的认证,但没有提出(即你的要求没有授权头)

最可能的解释是:简单的REST客户端(重新)使用Chrome的饼干。如果您之前使用表单登录对您的服务进行了身份验证,Simple Rest Client将重新使用JSESSIONID Cookie。要检测,只需按F12并打开调试器的网络选项卡。仅供参考,还有其他浏览器插件,例如"Advanced REST Client",可让您更清楚地了解发送到服务器的内容。

当您使用restTemplate发送请求时,它无法访问会话cookie(这是预期的)。您应该发布到允许匿名访问的URI,或者在请求中提供某种形式的身份验证。如果您需要其他帮助,请发布您的安全配置。