public function getContent($asResource = false)
{
$currentContentIsResource = is_resource($this->content);
if (PHP_VERSION_ID < 50600 && false === $this->content) {
throw new \LogicException('getContent() can only be called once when using the resource return type and PHP below 5.6.');
}
if (true === $asResource) {
if ($currentContentIsResource) {
rewind($this->content);
return $this->content;
}
// Content passed in parameter (test)
if (is_string($this->content)) {
$resource = fopen('php://temp', 'r+');
fwrite($resource, $this->content);
rewind($resource);
return $resource;
}
$this->content = false;
return fopen('php://input', 'rb');
}
if ($currentContentIsResource) {
rewind($this->content);
return stream_get_contents($this->content);
}
if (null === $this->content || false === $this->content) {
$this->content = file_get_contents('php://input');
}
return $this->content;
}
php接收post的数据,一般用$_POST可以搞定,如果不行,就用file_get_contents("php://input");
他请求的数据统一用json格式,用PHP处理是很简单的,只需要使用json_decode()解析一下就变成php里的数组了。
用户名密码之类的变量都可以包装在json里。
1.建议使用下面代码
2.必须可以添加
常规数据用$_POST,XML之类的用file_get_contents('php://input');
不要用$GLOBALS["HTTP_RAW_POST_DATA"],7.0废弃了。
就相当于raw
这个问题很好解决,首先post 请求参数有两种传参方式:
form 表单提交
json 格式提交
后端和android 端商量一个接收数据的方式就行了,没有作者说的那么复杂
楼主用的什么框架,如果用的laravel或者lumen的话直接Request::getContent()接,然后再json_decode()一下。如果要自己实现,可以参考laravel的实现方式: