怎么判斷http請(qǐng)求參數(shù)是表單還是json?
題主想問的應(yīng)該是如何判斷一個(gè)http請(qǐng)求它的數(shù)據(jù)傳輸方式是表單形式還是json形式。比如我們看悟空問答的頁面其中一個(gè)請(qǐng)求:看它的content-type:application/json,很明顯這是一個(gè)json格式的請(qǐng)求。實(shí)際上現(xiàn)在大多數(shù)的API數(shù)據(jù)傳輸都是采用json形式的。
Content-Type在http協(xié)議請(qǐng)求頭中,用Content-Type代表具體請(qǐng)求中的媒體類型信息。例如上圖中的“content-type:application/json”。
常見的媒體類型有如下幾種:
text/html:HTML格式
text/plain:純文本格式
text/xml:XML格式
image/gif:gif圖片格式
image/jpeg:jpg圖片格式
image/png:png圖片格式
application開頭的媒體類型有:
application/xhtml+xml:XHTML格式
application/xml:XML數(shù)據(jù)格式
application/atom+xml:Atom XML聚合格式
application/json:json數(shù)據(jù)格式
application/pdf:pdf格式
application/msword:Word文檔格式
application/octet-stream:二進(jìn)制流數(shù)據(jù)格式(文件下載)
application/x-www-form-urlencoded:表單提交方式
multipart/form-data:文件上傳數(shù)據(jù)格式
我們?nèi)粘1容^常用的就是application/json、application/x-www-form-urlencoded、multipart/form-data三種數(shù)據(jù)格式進(jìn)行http請(qǐng)求。
如何區(qū)分?瀏覽器開發(fā)者工具下直接可以查看請(qǐng)求的媒體類型
開發(fā)中,比如Java語言下采用SpringMVC框架開發(fā),在HttpServletRequest對(duì)象中,request.getHeader("content-type")即可輸出請(qǐng)求的媒體類型,可以根據(jù)不同的請(qǐng)求類型采取對(duì)應(yīng)的方式解析數(shù)據(jù)。