传递给Guzzle的createRequest方法时类型未知的资源

时间:2015-06-23 03:22:56

标签: php guzzle

当我在body的{​​{1}}参数的$option元素中传递资源引用时,Guzzle 5.3.0将资源类型createRequest转换为stream }。这会使资源无法使用,并导致Guzzle内部出现异常。

e.g。

unknown

$fp = fopen('path/to/a/file.txt'); $request = $client->createRequest('POST', $someUrl, ['body' => $fp]); 之前createRequest的类型为$fp。但在该行之后,stream的类型为$fp

Guzzle在发送请求之前在内部将流转换为unknown,但不知怎的,它每次都会被破坏。

调用GuzzleHttp\Stream时会导致异常fstat(): 501 is not a valid stream resource

可能导致这种情况的原因以及如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

您可以使用Stream对象创建请求。

首先添加Stream类

use GuzzleHttp\Stream\Stream;

从文件创建流对象并将其用于创建请求。

$stream = Stream::factory(fopen('path/to/a/file.txt'));

$request = $client->createRequest('POST', $someUrl, ['body' => $stream ]);