我发出PUT
请求,但我无法访问发布的数据,我总是回复string(0) ""
。
我用于获取PUT
数据的代码是:
public function editProduct($id) {
$put = file_get_contents('php://input',true);
return var_dump($put);
}
PUT
请求
thanasisem@debian:~$ curl -i -X PUT -d arg=123 -d arg2=345 localhost/laravelproject/public/products/5
HTTP/1.1 200 OK
Date: Mon, 30 Jun 2014 17:22:59 GMT
Server: Apache/2.2.22 (Debian)
X-Powered-By: PHP/5.4.4-14+deb7u11
Cache-Control: no-cache
X-Frame-Options: SAMEORIGIN
Set-Cookie: laravel_session=eyJpdiI6IjdcL3dYVlM1ZXZOZ0JHMVQrb1o1ME1sa3c3QTdTNnRXUnhxTWFDeHJSVDBJPSIsInZhbHVlIjoicTVPb2QwdThNRE1xUnh4VWZnWW5FT3ZTQUxKaE1RdWtycjNVUmlPWVZCZmVNcVBaVFY0Z0k1bEpSV0phVG5TckNWSkh1S2tsR1NEbmxvcFpna3lDOEE9PSIsIm1hYyI6ImI4ZmRlZTM1ODAyNDY3YjY5ZGQyZTE5NGZiMTEzZWVlOWUzZDIyZTI4MmE3MjM4MDM5NGFkZTRjOWQ4Yzk2OGQifQ%3D%3D; expires=Mon, 30-Jun-2014 19:22:59 GMT; path=/; httponly
Vary: Accept-Encoding
Transfer-Encoding: chunked
Content-Type: text/html; charset=UTF-8
string(0) ""
thanasisem@debian:~$
答案 0 :(得分:0)
var_dump
立即输出,并且具有void
返回类型。因此,您输出的是您上传的内容,然后基本上什么也没有。
你可能想要
return file_get_contents('php://input');
代替。
答案 1 :(得分:0)
解决。
我必须在-H 'Content-Type: application/json'
请求中添加PUT
才能使其正常工作。
我创建的成功PUT
请求如下:
curl -X PUT -H 'Content-Type: application/json' -d '{"firstName":"Kris", "lastName":"Jordan"}' localhost/laravelproject/public/products/5