Guzzle没有返回body导致$ request-> getBody()没有提供addFile()函数

时间:2015-05-19 12:54:43

标签: guzzle

我已经包含了' https://github.com/guzzle/guzzle/releases/download/5.2.0/guzzle.phar'使用require 'guzzle.phar';

我已经添加了

$client = new Guzzle\Http\Client();

$request = $client->createRequest("POST", <URL>);

$postBody = $request->getBody();

$postBody->addFile(new PostFile('file', fopen('@./images'.$location, 'r')));

$response = $client->send($request);

$body = $response->json();

return $body['id'];

但是我得到了

Error: Call to a member function addFile() on null

造成这种情况的原因是什么?

1 个答案:

答案 0 :(得分:0)

要完全理解您的错误,我们必须查看Request::__construct()AbstractMessage::getBody()Request::handleOptions()方法的源代码。

正如您所看到的,如果请求是在没有&#39; body&#39;的情况下实例化的。选项,它将被设置为null。因此,当您致电$request->getBody()时,您会收到NULL而不是MessageInterface个实例。