Tengo una solicitud de instrucciones muy simple para github para descargar un archivo zip:
$client = new GuzzleHttpClient();
$response
= $client->get("https://github.com/xxxxx/{$name}/zipball/master")
->setResponseBody($file)
->send();
El problema es que $ file parece terminar conteniendo dos (2) copias del archivo, es decir, su tamaño es exactamente el doble del obtenido al ejecutar
wget https://github.com/xxxxx/{$name}/zipball/master
y, por supuesto, descomprimir se queja cuando se descomprime la versión guzzle. ¿Hay algo que me falta en la API de guzzle, tal vez debido a la redirección?
Esto es guzzle 3.9.2 (2014-09-10), Linux, PHP 5.6.6 (cli) (construido: 19 de febrero de 2015 13:46:39)
Respuestas
0 para la respuesta № 1Soy nuevo en el uso de Guzzle y podría estar equivocado, pero ...
Parece que $ cliente-> obtener es obtener una copia deel código postal, luego usted toma esa copia y la devuelve como el cuerpo de la respuesta (agregando así la primera copia, al final de la segunda), luego está enviando la solicitud.
Si todo lo que quieres hacer es descargar una copia de ese archivo zip, entonces haz algo como esto:
$client = new Client();
$response = $client->get("https://github.com/xxxxx/{$name}/zipball/master")->getBody();
file_put_contents("{$name}-master.zip", $response);