java - 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)
解决方案
推荐阅读
- node.js - Google Drive API:更新文件名失败
- python - Python 请求有效负载格式
- node.js - 是否可以选择在不使用 eval 或 safe-eval 的情况下评估 nodejs 中的值?
- php - PHP 的 in_array() 方法如何识别数组中对象的特定实例的存在?
- python - 比较字典中的值并根据值对每个值进行处理
- scala - Log4j + Scala:如何只记录我的自定义消息?
- c++ - C++ 错误:在此上下文中不允许分解声明
- ruby-on-rails - Rails 5.2 嵌套路由和 urls 路径不适用于删除
- python - Wagtail:嵌套的内联面板
- regex - pentaho 正则表达式排除具有 .gz 扩展名的文件并包含以特定字符串开头的文件