POST multipart/form-data with Guzzle 4


POST multipart/form-data with Guzzle 4

我使用Guzzle 4,我想POST文件与multipart/form-data。我不确定哪一种方法是正确的。

我试过:

$client = new GuzzleHttp'Client();
$request = $client->createRequest('POST', 'https://127.0.0.1/1/files/', ['json' => ['id' => 'dc51bfe4-92af-483d-80c4-f2da4cafa723'], 'cookies' => true]);
$request->getBody()->addFile(new PostFile('a.pdf', fopen('a.pdf', 'rb')));
$response = $this->client->send($request);

我得到这个错误:

Fatal error: Call to undefined method GuzzleHttp'Stream'Stream::addFile()

如果我将addFile替换为addPostFile,也会发生相同的情况。

任何想法?

从未使用过Guzzle,但我尝试了这段代码,并能够通过替换

来修复它
$request = $client->createRequest('POST', 'https://127.0.0.1/1/files/', ['json' => ['id' => 'dc51bfe4-92af-483d-80c4-f2da4cafa723'], 'cookies' => true]);

$request = $client->createRequest('POST', 'https://127.0.0.1/1/files/', ['cookies' => true]);

你可以在createRequest之后传递json数据。您应该查看Guzzle文档。

而且,您似乎同时使用了$client$this->client