java-Spring RestTemplate getForObject()提供401未经授权的异常

在我的浏览器中,其余的REST API URL正常工作,我可以看到XML结果.

"http://V7846EKZZJ1OJAW486D66IS7GO24XKUZ@localhost:8090/prestashop/api/products/1"

我想从Java客户端调用此URL并获取结果.为此,我正在使用RestTemplate.

String result = restTemplate.getForObject("http://V7846EKZZJ1OJAW486D66IS7GO24XKUZ@localhost:8090/prestashop/api/products/1"
    , String.class);

这给出了以下错误,

WARNING: GET request for       http://V7846EKZZJ1OJAW486D66IS7GO24XKUZ@localhost:8090/prestashop/api/products/1 resulted in 401 (Unauthorized); invoking error handler
Disconnected from the target VM, address: '127.0.0.1:49533', transport: 'socket'

org.springframework.web.client.HttpClientErrorException: 401 Unauthorized
at org.springframework.web.client.DefaultResponseErrorHandler.handleError(DefaultResponseErrorHandler.java:88)
at org.springframework.web.client.RestTemplate.handleResponseError(RestTemplate.java:537)

不知道为什么会这样.
我们不能使用RestTemplate调用username @ host / appplication形式的URL吗?
还是我使用RestTemplate调用此URL的方式不正确?

问候,
-Lasith.

解决方法:

我遇到了类似的问题,并使用resttemplate.exchange方法解决了它.这些步骤会将您的身份验证详细信息放入RestRequestHeaderInfo中,该信息应位于HttpEntity< MultiValueMap< String,String>>中.将此实体传递到如下的交换方法中:

response = restTemplate.exchange(url, HttpMethod.GET, request, Response.class);

如果响应是像我这样的json格式,则响应是对应数据的持有者类,该类将由我的类路径中的Jackson库填充:可以.

上一篇:java-取消/中止/中断spring-android resttemplate请求


下一篇:.net core 环境安装失败,错误:0x80072EE2