0

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

2 回答 2

0

这是一种安全措施,因为某些浏览器中存在已知的安全漏洞

JSON API 规范也需要这个顶级元素

Guzzle 是一个非常强大的库。也许邮递员不是,或者邮递员自己删除了根元素……我不知道。

于 2015-12-22T17:09:08.823 回答
0

我用一个解决了这个问题

substr($request->getBody()->getContents(), 17) 

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

于 2015-12-22T18:05:51.683 回答