Android RestTemplate exchange()引发HttpClientErrorException:401未经授权

Android RestTemplate exchange()引发HttpClientErrorException:401未经授权,android,spring,unauthorized,spring-android,Android,Spring,Unauthorized,Spring Android,我正在尝试从Android客户端连接到RESTful web服务 但是,即使在请求头中提供了正确的授权令牌,我总是会得到一个HttpClientErrorException:401未经授权。 提供的url是正确的 我还尝试了此请求工厂: template.setRequestFactory(new SimpleClientHttpRequestFactory()); 如果我使用具有相同标题和url的Postman for Chorme,我会得到一个响应 这是我的代码: public class

我正在尝试从Android客户端连接到RESTful web服务

但是,即使在请求头中提供了正确的授权令牌,我总是会得到一个
HttpClientErrorException:401未经授权。

提供的url是正确的

我还尝试了此请求工厂:

template.setRequestFactory(new SimpleClientHttpRequestFactory());
如果我使用具有相同标题和url的Postman for Chorme,我会得到一个响应

这是我的代码:

public class PutSomeObjectTask extends AsyncTask<SomeObject, Void, SomeObject>{

@Override
protected SomeObject doInBackground(SomeObject... params) {
    SomeObject object = params[0];
    String url = ...;

    RestTemplate template = new RestTemplate();
    template.setRequestFactory(new HttpComponentsClientHttpRequestFactory());
    template.getMessageConverters().add(new MappingJackson2HttpMessageConverter());
    template.getMessageConverters().add(new FormHttpMessageConverter());

    HttpHeaders headers = new HttpHeaders();
    headers.add("Content-Type", "application/json");
    headers.set("Authorization", AuthUtil.getCurrentUserAuthorization());

    HttpEntity<SomeObject> requestEntity = new HttpEntity<SomeObject>(object, headers);
    ResponseEntity<SomeObject> responseEntity = template.exchange(url, HttpMethod.PUT, requestEntity, SomeObject.class);

    return responseEntity.getBody();
}}
公共类PutSomeObjectTask扩展了AsyncTask{
@凌驾
受保护的SomeObject doInBackground(SomeObject…参数){
SomeObject对象=参数[0];
字符串url=。。。;
RestTemplate=新的RestTemplate();
setRequestFactory(新的HttpComponentsClientHttpRequestFactory());
template.getMessageConverters().add(新映射Jackson2HttpMessageConverter());
template.getMessageConverters().add(新FormHttpMessageConverter());
HttpHeaders=新的HttpHeaders();
添加(“内容类型”、“应用程序/json”);

set(“Authorization”,AuthUtil.getCurrentUserAuthorization()); HttpEntity requestEntity=新的HttpEntity(对象、头); ResponseEntity ResponseEntity=template.exchange(url、HttpMethod.PUT、requestEntity、SomeObject.class); 返回responseEntity.getBody(); }}
问题已解决。我只需要更新Maven依赖项。

AuthUtil.getCurrentUserAuthorization()做什么?AuthUtil.getCurrentUserAuthorization()返回必须添加到请求标头的授权令牌。是否确实正确构造了授权令牌?我在Postman中使用了相同的令牌,可以连接到服务。