一個只用markdown語法編寫文章的90后野路子Web架構師,每天都分享一些有用的知識點,歡迎關注~
1. 概述
本文主要整理了POST提交數據到API時Content-Type的使用。
2. 腦圖
3. multipart/form-data
將FORM表單數據使用指定的分割字符(boundary)組裝成一個字符串提交,可用于提交二進制數據,如上傳文件。
請求頭加入: Content-Type: multipart/form-data; boundary=盡量長的分割字符串。
請求方式如下:
php端接收數據方式: 使用 $_POST 變量接收。如下:
4. Application/x-www-form-urlencode
將FORM表單數據使用urlencode編碼,然后用&連接,組裝成k1=v1&k2=v2格式字符串提交,對于提交大量二進制數據比較低效。
請求頭加入:Content-Type: application/x-www-form-urlencode。
請求方式如下:
PHP端接收數據方式:1). 使用 $_POST 變量 2). 使用 file_get_contents("php://input")方法,然后用parse_str函數解析
5. application/json
告知服務端POST提交的是JSON字符串。
請求頭加入:Content-Type: application/json。
請求方式如下:
PHP端接收數據方式:使用 file_get_contents("php://input") 方法,然后用json_decode函數解析
6. text/plain
告知服務端JSON提交的是文本字符串。
請求頭加入:Content-Type: text/plain。
請求方式如下:
PHP端接收數據方式:使用 file_get_contents("php://input") 方法
總結
- 文件上傳用multipart/form-data類型,然后用$_FILES和$_POST接收參數。
- 通用接口用application/x-www-form-urlencode類型,然后用$_POST或file_get_contents("php://input")接受參數。
- 只接受JSON字符串的接口用application/json類型,然后用file_get_contents("php://input")接受參數。