【问题标题】:RestTemplate postForObject return HttpClientErrorException: 401 nullRestTemplate postForObject 返回 HttpClientErrorException: 401 null
【发布时间】:2017-03-08 09:00:02
【问题描述】:

我正在尝试向身份验证服务器发送帖子消息,并且我正在使用 postforobject。当我运行程序时,我收到“线程“主”org.springframework.web.client.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);

同样的结果,它不起作用。

当我使用 Simple Rest Client 时,它可以工作 enter image description here

有什么想法吗?

【问题讨论】:

  • 您是否尝试使用空字符串而不是 null ?
  • 是的,我试过了。它没有工作
  • 你是如何发送认证参数的?

标签: spring rest resttemplate


【解决方案1】:

401 null 可能意味着服务器期望某种形式的身份验证,但没有提供任何形式的身份验证(即您的请求中没有 Authorization 标头)

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-09-15
    • 1970-01-01
    • 2016-03-18
    • 2022-01-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-20
    相关资源
    最近更新 更多