一個(gè)只用markdown語(yǔ)法編寫(xiě)文章的90后野路子Web架構(gòu)師,每天都分享一些有用的知識(shí)點(diǎn),歡迎關(guān)注~
1. 概述
本文主要整理了POST提交數(shù)據(jù)到API時(shí)Content-Type的使用。
2. 腦圖

3. multipart/form-data
將FORM表單數(shù)據(jù)使用指定的分割字符(boundary)組裝成一個(gè)字符串提交,可用于提交二進(jìn)制數(shù)據(jù),如上傳文件。
請(qǐng)求頭加入: Content-Type: multipart/form-data; boundary=盡量長(zhǎng)的分割字符串。
請(qǐng)求方式如下:

php端接收數(shù)據(jù)方式: 使用 $_POST 變量接收。如下:

4. Application/x-www-form-urlencode
將FORM表單數(shù)據(jù)使用urlencode編碼,然后用&連接,組裝成k1=v1&k2=v2格式字符串提交,對(duì)于提交大量二進(jìn)制數(shù)據(jù)比較低效。
請(qǐng)求頭加入:Content-Type: application/x-www-form-urlencode。
請(qǐng)求方式如下:

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

5. application/json
告知服務(wù)端POST提交的是JSON字符串。
請(qǐng)求頭加入:Content-Type: application/json。
請(qǐng)求方式如下:

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

6. text/plain
告知服務(wù)端JSON提交的是文本字符串。
請(qǐng)求頭加入:Content-Type: text/plain。
請(qǐng)求方式如下:

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

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