guzzle php发布请求响应问题

时间:2015-12-22 16:58:19

标签: php guzzle6

我可以使用以下代码使用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"
 }
}

2 个答案:

答案 0 :(得分:0)

这是一项安全措施,因为某些浏览器中有known security vulnerability

JSON API specs require this top level element

Guzzle是一个非常强大的库。也许Postman不是,或者Postman可能会自行删除根元素......我不知道这个。

答案 1 :(得分:0)

我使用

解决了这个问题
substr($request->getBody()->getContents(), 17) 

的响应,并能够删除不需要的字符串并将其解码为json