我遇到了远程服务的问题我无法控制对使用Spring的RestTemplate发送的请求的http 400响应.使用curl发送的请求会被接受,因此我将它们与通过RestTemplate发送的请求进行了比较.特别是,Spring请求具有标题Connection,Content-Type和Content-Length,而curl请求则没有.如何配置Spring不添加它们?最佳答案实际上这可能不是问题所在.我的猜测是你没有指定正确的消息转换器.但这是一种删除标题的技术,以便您可以确认:
1.创建自定义ClIEnthttpRequestInterceptor实现:
public class CustomhttpRequestInterceptor implements ClIEnthttpRequestInterceptor{ @OverrIDe public ClIEnthttpResponse intercept(httpRequest request,byte[] body,ClIEnthttpRequestExecution execution) throws IOException { httpheaders headers = request.getheaders(); headers.remove(httpheaders.CONNECTION); headers.remove(httpheaders.CONTENT_TYPE); headers.remove(httpheaders.CONTENT_LENGTH); return execution.execute(request,body); }}
2.然后将其添加到RestTemplate的拦截器链:
@Beanpublic RestTemplate restTemplate(){ RestTemplate restTemplate = new RestTemplate(); restTemplate.setInterceptors(Arrays.asList(new CustomhttpRequestInterceptor(),new LoggingRequestInterceptor())); return restTemplate;}
总结 以上是内存溢出为你收集整理的java – 如何删除Spring的RestTemplate添加的某些HTTP头?全部内容,希望文章能够帮你解决java – 如何删除Spring的RestTemplate添加的某些HTTP头?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)