我正在使用"guzzlehttp/guzzle": "~6.0"
并尝试使用以下代码github用户。
$client = new \GuzzleHttp\Client();
$request = $client->createRequest('GET', 'https://api.github.com/users');
$query = $request->getQuery();
$query->set('since',135);
$response = $request->send();
$oResponse = json_decode($response->getBody(true));
但我收到了错误
Argument 3 passed to GuzzleHttp\Client::request() must be of the type array, string given
但这种方法适用于"guzzle/guzzle": "^3.9",
我不知道我在哪里遗漏了什么。
答案 0 :(得分:0)
"guzzlehttp/guzzle": "~6.0"
会让你获得Guzzle v6.1.1。 v3.9和v6.1之间的方法和方法签名不同。这么多,Client::createRequest()
在v6.1中不存在,而且实际上由Client::__call()
捕获,然后传递给Client::request()
,在那里你获得错误,因为提供的参数与签名不匹配Client::request()
。
有关Guzzle 6的更多信息可以从Guzzle docs获得。
您还会发现您的$request->send()
会抛出错误。 Guzzle 6将Psr7放在心上,因此Request / Response对象实现了Psr7规范。