1. 概述
本文主要整理了POST提交数据到API时Content-Type的使用。
2. 脑图
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLicmbw5iMzEmZ3YmZ0IjM2MTY1MDOmZzYxUjMmJ2MiRGOmRWYh9CX0JXZ252bj91Ztl2Lc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
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")接受参数。