首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >restTemplate交换经常导致400错误

restTemplate交换经常导致400错误
EN

Stack Overflow用户
提问于 2018-12-21 18:04:05
回答 1查看 373关注 0票数 0

在我的安卓应用程序中,我试图通过restTemplate.exchange发出GET请求,但它经常导致400错误,很少是200响应。

GET request for "http://someURL/items/modified/2018-12-20T12%253A47%253A43%252B01%253A00" resulted in 400 (); invoking error handler

org.springframework.web.client.HttpClientErrorException: 400

我试着用编码和解码的参数做请求,但这是相同的问题。唯一改变的是请求中的时间戳。我不认为这是后端的问题,因为我在同一个界面上通过Swagger和Postman做了几个请求,所有的请求都没有问题。我也尝试将spring-android更新到2.0.0.M3版本,但仍然存在同样的问题。

代码语言:javascript
复制
String url = ServiceAppConstants.HOSTNAME + ServiceAppConstants.REST_ITEMS_MODIFIED +                             URLEncoder.encode(lastSynchronisationDate);
try {
  HttpEntity<String> httpEntity = RestServiceUtils.getHttpEntity(context);
  RestTemplate restTemplate = new RestTemplate();
  restTemplate.getMessageConverters().add(new MappingJackson2HttpMessageConverter());

   // runs in the error here
   ResponseEntity<ArrayList> response = restTemplate.exchange(url, HttpMethod.GET, httpEntity, ArrayList.class); 
   items= response.getBody();
   items = mapper.convertValue(items, new TypeReference<List<Items>>(){});
} catch (RestClientException e) {
    /* do stuff */
}

要设置标记,请执行以下操作

代码语言:javascript
复制
@NonNull
public static HttpEntity<String> getHttpEntity(Context context) {
    UserStorage userStorage = new UserStorage(context);
    HttpHeaders headers = new HttpHeaders();
    try {
        String token = userStorage.getJsonWebToken();
        headers.set(ServiceAppConstants.HEADER_SECURITY_TOKEN, token);
    }catch (Exception ex){
        Log.e(RestServiceUtils.class.getName(), "Could not get json web token", ex);
    }
    return new HttpEntity<String>("parameters", headers);
}

这就是请求在android分析器中的样子

如果请求是通过swagger发送的,则会显示如下所示

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-12-21 21:55:40

使用新的HttpEntity(headers);(不带参数)

根据HttpEntity documentation,"parameters“字符串是可能导致问题的请求正文。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53882722

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档