12.11 一文弄懂POST提交的Content-Type值


一文弄懂POST提交的Content-Type值


一個只用markdown語法編寫文章的90後野路子Web架構師,每天都分享一些有用的知識點,歡迎關注~

1. 概述

本文主要整理了POST提交數據到API時Content-Type的使用。

2. 腦圖


一文弄懂POST提交的Content-Type值


3. multipart/form-data

將FORM表單數據使用指定的分割字符(boundary)組裝成一個字符串提交,可用於提交二進制數據,如上傳文件。

請求頭加入: Content-Type: multipart/form-data; boundary=儘量長的分割字符串

請求方式如下:


一文弄懂POST提交的Content-Type值


PHP端接收數據方式: 使用 $_POST 變量接收。如下:


一文弄懂POST提交的Content-Type值


4. application/x-www-form-urlencode

將FORM表單數據使用urlencode編碼,然後用&連接,組裝成k1=v1&k2=v2格式字符串提交,對於提交大量二進制數據比較低效。

請求頭加入:Content-Type: application/x-www-form-urlencode

請求方式如下:


一文弄懂POST提交的Content-Type值


PHP端接收數據方式:1). 使用 $_POST 變量 2). 使用 file_get_contents("php://input") 方法,然後用parse_str函數解析


一文弄懂POST提交的Content-Type值


5. application/json

告知服務端POST提交的是JSON字符串。

請求頭加入:Content-Type: application/json

請求方式如下:


一文弄懂POST提交的Content-Type值


PHP端接收數據方式:使用 file_get_contents("php://input") 方法,然後用json_decode函數解析


一文弄懂POST提交的Content-Type值

6. text/plain

告知服務端JSON提交的是文本字符串。

請求頭加入:Content-Type: text/plain

請求方式如下:


一文弄懂POST提交的Content-Type值


PHP端接收數據方式:使用 file_get_contents("php://input") 方法


一文弄懂POST提交的Content-Type值

總結

  • 文件上傳用multipart/form-data類型,然後用$_FILES和$_POST接收參數。
  • 通用接口用application/x-www-form-urlencode類型,然後用$_POST或file_get_contents("php://input")接受參數。
  • 只接受JSON字符串的接口用application/json類型,然後用file_get_contents("php://input")接受參數。


分享到:


相關文章: