首页 > 解决方案 > Spring Boot:Rest Template 400 错误请求

问题描述

我每 1 分钟尝试在调度程序中执行功能。调度程序的第一次调用给出了预期的结果,但在下一次迭代中得到 400 个错误请求。我在这里有用户名和密码。

   @Scheduled(cron = "0 0/1 * * * ?")
   public void xAuthTokenScheduler() throws Exception {
        String url="xxxx";
        String json= "jsonstring";
        restTemplate.getInterceptors().add(
                new BasicAuthorizationInterceptor(User.trim(),Password.trim()));
        HttpHeaders headers = new HttpHeaders();
        headers.setContentType(MediaType.APPLICATION_JSON);
        headers.setAccept(Arrays.asList(MediaType.APPLICATION_JSON));
        //headers.setContentType(MediaType.APPLICATION_JSON);
        headers.setCacheControl("no-cache, no-store, max-age=0, must-revalidate");
        HttpEntity<String> request = new HttpEntity<String>(json, headers);
        resultAsJsonStr= restTemplate.exchange(url, HttpMethod.POST,request,String.class);
    }

为什么它在第二次迭代中失败了任何与缓存相关的问题?

      org.springframework.web.client.HttpClientErrorException$BadRequest: 400 Bad Request
at org.springframework.web.client.HttpClientErrorException.create(HttpClientErrorException.java:79)
at org.springframework.web.client.DefaultResponseErrorHandler.handleError(DefaultResponseErrorHandler.java:122)
at org.springframework.web.client.DefaultResponseErrorHandler.handleError(DefaultResponseErrorHandler.java:102)
at org.springframework.web.client.ResponseErrorHandler.handleError(ResponseErrorHandler.java:63)
at org.springframework.web.client.RestTemplate.handleResponse(RestTemplate.java:778)
at org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:736)
at org.springframework.web.client.RestTemplate.execute(RestTemplate.java:670)
at org.springframework.web.client.RestTemplate.exchange(RestTemplate.java:579)
at com.microfocus.resourcepoolmanagement.schedule.XAuthTokenScheduler.generateXAuthToken(XAuthTokenScheduler.java:79)
at com.microfocus.resourcepoolmanagement.schedule.XAuthTokenScheduler.xAuthTokenScheduler(XAuthTokenScheduler.java:50)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
at org.springframework.scheduling.concurrent.ReschedulingRunnable.run(ReschedulingRunnable.java:93)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)

标签: javaspring-bootapiresttemplatebad-request

解决方案


推荐阅读