使用HttpComponentsClientHttpRequestFactory时出现401错误

时间:2016-07-16 01:38:43

标签: java spring rest httpclient http-status-code-401

使用HttpComponentsClientHttpRequestFactory时,很少有网址获得401 Unauthorized错误,但使用Simpleclienthttprequestfactory时工作正常。

我想使用HttpComponentsClientHttpRequestFactory的原因是为了读取422错误的响应体。

有关解决以下任何一个问题的想法吗? 1.如何在使用HttpComponentsClientHttpRequestFactory时消除401错误?要么 2.如何在使用Simpleclienthttprequestfactory时读取422错误的responseBody? (AFAIK对此的修复是使用HttpComponents,但它导致其他问题...)

2 个答案:

答案 0 :(得分:0)

HttpComponentsClientHttpRequestFactory requestFactory = new HttpComponentsClientHttpRequestFactory(HttpClients.createSystem());

添加HttpClients.createSystem()解决了问题

答案 1 :(得分:-1)

  • 当我们在您通过HttpComponentsClientHttpRequestFactory调用的URL上使用curl时,您是否也获得了401? 由于代码401是未经授权的,因此您也应该从curl获得401。

    • 您是否需要在请求中设置用户/密码才能拥有正确的凭据? 是否使用了从Simpleclienthttpsrequestfactor发送的请求的凭据?

您还可以尝试在发出两个请求时(从Simple与HTTPComponents客户端)捕获网络流量,以查看两个请求的确切不同之处 - 因为如果它们相同,那么两者都应该导致401错误。