SpringMvc獲取請求頭請求體消息過程解析
Spring MVC 通過分析處理方法的簽名,將 HTTP 請求信 息綁定到處理方法的相應(yīng)入?yún)⒅小?/p>
- Spring MVC 對控制器處理方法簽名的限制是很寬松的, 幾乎可以按喜歡的任何方式對方法進(jìn)行簽名。
- 必要時可以對方法及方法入?yún)?biāo)注相應(yīng)的注解(@PathVariable、@RequestParam、@RequestHeader等)、Spring MVC 框架會將 HTTP 請求的信息綁定到相應(yīng)的方法入?yún)?中,并根據(jù)方法的返回值類型做出相應(yīng)的后續(xù)處理。
對接第三方服務(wù),說傳遞的POST請求中,Request Header中有需要的參數(shù),Request Body為XML格式,包括創(chuàng)建消息正文和屬性。
剛開始我以為可以通過 HttpServletRequest 來獲取到RequestBody 中的內(nèi)容的,比如request.getParameter("TopicOwner"); 可以取到需要的參數(shù),簡直 too yang。
應(yīng)該是通過 @RequestBody String body 這樣的注解來完成的,得到的是String 字符串
描述的是:Request Body為XML格式。那么怎么可能通過getParameter 獲取到參數(shù)呢。只能得到body的String格式啊,然后再自己解析
這么一個坑還燒了那么多腦細(xì)胞。。。
同樣@RequestHeader("Authorization") String authorization, 可以很方便的獲取到RequestHeader ,但是只能一個一個獲取
可以通過HttpServletRequest 獲取到所有的RequestHeader,如下:
Enumeration<String> headerNames = request.getHeaderNames(); while (headerNames.hasMoreElements()) { //獲取每個請求頭名稱 String headerName = headerNames.nextElement(); //跟距請求頭獲取請求值 String value = request.getHeader(headerName); System.out.println(headerName + " : " + value); log.error(headerName + " : " + value); }
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
idea中MavenWeb項(xiàng)目不能創(chuàng)建Servlet的解決方案
這篇文章主要介紹了idea中MavenWeb項(xiàng)目不能創(chuàng)建Servlet的解決方案,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下2020-02-02java8新特性將List中按指定屬性排序過濾重復(fù)數(shù)據(jù)的方法
這篇文章主要介紹了java8新特性將List中按指定屬性排序過濾重復(fù)數(shù)據(jù)的方法,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下2019-08-08Spring:@Async注解和AsyncResult與CompletableFuture使用問題
這篇文章主要介紹了Spring:@Async注解和AsyncResult與CompletableFuture使用問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-08-08Java 高并發(fā)的三種實(shí)現(xiàn)案例詳解
這篇文章主要介紹了Java 高并發(fā)的三種實(shí)現(xiàn)案例詳解,本篇文章通過簡要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下2021-08-08