我可以使用以下代码使用guzzle php发布帖子请求
$request = $this->request('POST', $this->url, array('form_params' => $params));
一切正常。但是当我打电话时
$request->getBody()->getContents();
字符串" root"附加到返回内容的开头。
我似乎不明白为什么会这样。
任何帮助将不胜感激。
我在var_dump时获得的一个例子是
string(4) "root"
{"access_token":"kjVbpzmk3VAWTHn3jyeaM1nal1zkFIPZrI8khmKQ",
"token_type":"Bearer",
"expires_in":604800,
"user_id":3,
"user":{
"id":3,
"name":"Thomas Paul"
}
}
同时在邮递员中我得到了这个
{
"access_token": "y9Jeovb3EERC4oE13yCS8WfFi3XK1eul4D4luwX3",
"token_type": "Bearer",
"expires_in": 604800,
"user_id": 3,
"user": {
"id": 3,
"name": "Thomas Paul"
}
}
答案 0 :(得分:0)
这是一项安全措施,因为某些浏览器中有known security vulnerability。
JSON API specs require this top level element。
Guzzle是一个非常强大的库。也许Postman不是,或者Postman可能会自行删除根元素......我不知道这个。
答案 1 :(得分:0)
我使用
解决了这个问题substr($request->getBody()->getContents(), 17)
的响应,并能够删除不需要的字符串并将其解码为json