首先备注一下GET和POST提交方式的一些简单区别
1、post发送的数据更大(get有url长度限制)
2、post能发送更多的数据类型(get只能发送ASCII字符)
3、post比get慢
4、http协议并未规定get和post的长度限制,get的最大长度限制是因为浏览器和web服务器限制了URL的长度,不同的浏览器和web服务器,限制的最大长度不一样
1、multipart/form-data
multipart/form-data既可以上传键值对,也可以上传文件
接收数据时用$_POST、$_FILES(只接收文件)、$_REQUEST、$GLOBALS(能接收到文件)接收
2、x-www-form-urlencoded
x-www-form-urlencoded只可以上传键值对
接收数据时用$_POST、$_REQUEST、$GLOBALS、file_get_contents('php://input')接收
3、json
接收数据时用file_get_contents('php://input')接收
4、xml
接收数据时用file_get_contents('php://input')接收
// 解析xml数据
simplexml_load_string($xml,'SimpleXMLElement',LIBXML_NOCDATA)
5、javascript、text/plain、text/html
接收数据时用file_get_contents('php://input')接收
备注:$GLOBALS ["HTTP_RAW_POST_DATA"],这个方法在高版本中已经废弃PHP: PHP 5.6.x 中已废止的特性 - Manual
我是用ApiPost测试的,上面给了这些数据格式,除了常用的其他的都需要用php://input来接收了,content-type只是用来告诉接收者数据是什么格式,更多的还是要接收者自己进行操作。
都是一些浅薄的理解。