我们开发PHP的Restful接口都会知道有PUT方法更新资源,那到底如何使用PUT这个HTTP方法更新资源,本文主要和大家分享PHP中Restful PUT方法的参数提交及接收详解,希望能帮助到大家。
有时候我们发现接收PUT方法发来的的参数不是我们想要的类型,想要一个参数数组,却被接收成一串字符串,这种问题其实是我们把Content-Type
的类型搞错了,我们发送的是application/json
或者application/x-www-form-urlencoded
对应的数据,但Content-Type
却是multipart/form-data
,这样接收的数据就变成了form-data的样子:
----------------------------217287928126218120101488Content-Disposition: form-data; name="status" 1 ----------------------------217287928126218120101488--
并且Restful的数据基本都是json格式传输,所以发送的HTTP头应该是Content-Type=application/json
。
使用POST MAN:
PUT方法接受参数使用:
parse_str(file_get_contents('php://input'), $data);
参数保存在$data
里。
如果使用tp5框架可以使用助手函数实现:
input('put.status');input('put.');
ps:这里的form-data误区应该是由PHP的POST和PUT方法内部解析multipart/form-data
的数据方式不同导致的,POST方法把参数解析到$_POST并把content内容置空,而PUT却没有这步操作,所以要注意使用上的区别。
相关推荐:
Atas ialah kandungan terperinci PHP中Restful PUT方法的参数提交及接收详解. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!