Мне нужно скачать файл с помощью Guzzle.В настоящее время я использую версию 6.3.3.
Я передаю опцию sink
на мой запрос, но хотя API я запрашиваю ответы "200 OK" с некоторым теломсодержимое файла назначения всегда пусто.
Вот код, который у меня пока есть:
// sidenote:
// $this->importFile is the absolute path to the file the contents have to be downloaded to
// $this->api is a GuzzleHttp\Client, base URL has been set previously
// $uri is the API endpoint's URI I am requesting (like "get/data")
// $this->getQueryParams() returns an array with a few needed parameters
$downloadDestination = fopen($this->importFile, 'w');
$response = $this->api->get($uri, [
'query' => $this->getQueryParams(),
'sink' => $downloadDestination,
]);
var_dump(file_get_contents($this->importFile));
var_dump($response->getBody()->getContents());
die;
Кстати, я называю это в контексте приложения Symfony (3.4)в команде (bin/console blah:custom-command
).Приведенный выше фрагмент кода является частью одного из моих классов обслуживания.
Это приводит к недавно созданному, но пустому файлу и следующему выводу в моем терминале:
string(0) ""
string(2065) "{"id":"123", … }"
# the latter one is actually a large JSON string, I just shortened it here
У кого-нибудь есть подсказка?что я делаю не так?Это на самом деле не ракетостроение.Тем более, что я запутался сейчас, когда файл назначения для моей загрузки создан, но его содержимое не будет записано ...
Отсутствует ли какая-либо конфигурация для Guzzle или что-то в этом роде?