SpringMvc獲取請(qǐng)求頭請(qǐng)求體消息過(guò)程解析
Spring MVC 通過(guò)分析處理方法的簽名,將 HTTP 請(qǐng)求信 息綁定到處理方法的相應(yīng)入?yún)⒅小?/p>
- Spring MVC 對(duì)控制器處理方法簽名的限制是很寬松的, 幾乎可以按喜歡的任何方式對(duì)方法進(jìn)行簽名。
- 必要時(shí)可以對(duì)方法及方法入?yún)?biāo)注相應(yīng)的注解(@PathVariable、@RequestParam、@RequestHeader等)、Spring MVC 框架會(huì)將 HTTP 請(qǐng)求的信息綁定到相應(yīng)的方法入?yún)?中,并根據(jù)方法的返回值類型做出相應(yīng)的后續(xù)處理。
對(duì)接第三方服務(wù),說(shuō)傳遞的POST請(qǐng)求中,Request Header中有需要的參數(shù),Request Body為XML格式,包括創(chuàng)建消息正文和屬性。
剛開(kāi)始我以為可以通過(guò) HttpServletRequest 來(lái)獲取到RequestBody 中的內(nèi)容的,比如request.getParameter("TopicOwner"); 可以取到需要的參數(shù),簡(jiǎn)直 too yang。
應(yīng)該是通過(guò) @RequestBody String body 這樣的注解來(lái)完成的,得到的是String 字符串
描述的是:Request Body為XML格式。那么怎么可能通過(guò)getParameter 獲取到參數(shù)呢。只能得到body的String格式啊,然后再自己解析
這么一個(gè)坑還燒了那么多腦細(xì)胞。。。
同樣@RequestHeader("Authorization") String authorization, 可以很方便的獲取到RequestHeader ,但是只能一個(gè)一個(gè)獲取
可以通過(guò)HttpServletRequest 獲取到所有的RequestHeader,如下:
Enumeration<String> headerNames = request.getHeaderNames();
while (headerNames.hasMoreElements()) {
//獲取每個(gè)請(qǐng)求頭名稱
String headerName = headerNames.nextElement();
//跟距請(qǐng)求頭獲取請(qǐng)求值
String value = request.getHeader(headerName);
System.out.println(headerName + " : " + value);
log.error(headerName + " : " + value);
}
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Spring boot + mybatis + orcale實(shí)現(xiàn)步驟實(shí)例代碼講解
這篇文章主要介紹了Spring boot + mybatis + orcale的實(shí)現(xiàn)步驟實(shí)例代碼講解,需要的朋友可以參考下2017-12-12
如何在IDE部署springboot項(xiàng)目(有swagger和無(wú)swagger都是一樣的)到服務(wù)器或者虛擬機(jī)上的docke
這篇文章主要介紹了如何在IDE部署springboot項(xiàng)目(有swagger和無(wú)swagger都是一樣的)到服務(wù)器或者虛擬機(jī)上的docker,本文給大家分享我的安裝歷程,需要的朋友可以參考下2023-01-01
Mybatis實(shí)現(xiàn)分頁(yè)的注意點(diǎn)
Mybatis提供了強(qiáng)大的分頁(yè)攔截實(shí)現(xiàn),可以完美的實(shí)現(xiàn)分功能。下面小編給大家分享小編在使用攔截器給mybatis進(jìn)行分頁(yè)所遇到的問(wèn)題及注意點(diǎn),需要的朋友一起看看吧2017-07-07
java自定義填充excel并導(dǎo)出的方法代碼實(shí)例
這篇文章主要給大家介紹了關(guān)于java自定義填充excel并導(dǎo)出的相關(guān)資料,使用Java在Spring框架中實(shí)現(xiàn)一個(gè)接口,該接口可以將JSON數(shù)據(jù)導(dǎo)出為Excel文件,文章涵蓋了從加載Excel模板、創(chuàng)建單元格樣式到填充數(shù)據(jù)并返回響應(yīng)的整個(gè)過(guò)程,需要的朋友可以參考下2024-12-12
java實(shí)現(xiàn)簡(jiǎn)單學(xué)生管理系統(tǒng)項(xiàng)目
這篇文章主要介紹了java實(shí)現(xiàn)簡(jiǎn)單學(xué)生管理系統(tǒng)項(xiàng)目,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-07-07
SpringBoot整合Quartz實(shí)現(xiàn)動(dòng)態(tài)配置的代碼示例
這篇文章將介紹如何把Quartz定時(shí)任務(wù)做成接口,實(shí)現(xiàn)以下功能的動(dòng)態(tài)配置添加任務(wù),修改任務(wù),暫停任務(wù),恢復(fù)任務(wù),刪除任務(wù),任務(wù)列表,任務(wù)詳情,文章通過(guò)代碼示例介紹的非常詳細(xì),需要的朋友可以參考下2023-07-07
使用Thrift實(shí)現(xiàn)跨語(yǔ)言RPC的調(diào)用
Thrift最大的優(yōu)勢(shì)就是可以實(shí)現(xiàn)跨語(yǔ)言RPC調(diào)用,尤其在一些大廠,微服務(wù)各模塊之間使用不同的語(yǔ)言是很常見(jiàn)的,本文就將使用java作為服務(wù)端,用python作為客戶端,實(shí)現(xiàn)不同語(yǔ)言之間的RPC調(diào)用,需要的可以參考下2023-10-10
MyBatis動(dòng)態(tài)<if>標(biāo)簽使用避坑指南
這篇文章主要為大家介紹了MyBatis動(dòng)態(tài)<if>標(biāo)簽使用避坑指南,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-03-03

