Java与spring boot初学者,最近想做resttemplate的拦截器,发现拦截器里的方法
ClientHttpResponse intercept(HttpRequest request, byte[] body, ClientHttpRequestExecution execution)
参数是httpRequest,项目实战中处理请求信息一般用javax.servlet.http.httpservletRequest
两者的方法也不一样,HttpServlet对象只能按header名进行索引,HttpRequest的getheaders返回完整的HttpHeader对象,并且方法上明确了返回值不为空。
/**
* Return the headers of this message.
* @return a corresponding HttpHeaders object (never {@code null})
*/
HttpHeaders getHeaders();
这点也比较困惑,假如通过HttpEntity request = new HttpEntity<>(body, headers);构建header为null的request,httpRequest会获取什么呢?
想问一下这两者有什么联系跟区别?已经谷歌过了没找到合适的答案,谢谢各位
处理请求用
HttpServletRequest
是因为用了Servlet反过来用
RestTemplate
只能用HttpRequest
是因为RestTemplate
是spring自己做的抽象,当然只能用自己的东西