Загрузка изображений с помощью Goutte

Мне нужно загрузить изображения, используя файл cookie в запросе. Я мог бы сделать это с помощью file_get_contents (с помощью stream_context_create) или curl с передачей файлов cookie. Но как это сделать с Goutte?

use Goutte\Client;

$client = new Client();
$response = $client->request('GET', 'https://www.google.pl/images/srpr/logo11w.png');

Я делаю запрос GET, и что дальше?

Хорошо, я понял это:

$client->get('https://www.google.pl/images/srpr/logo11w.png', array('save_to' => __DIR__.'/image.jpg'));

person jacekpl    schedule 08.06.2014    source источник


Ответы (1)


С Гутте 2:

$client = new GuzzleHttp\Client([
    'base_url' => 'https://www.google.pl',
    'defaults' => [
        'cookies' => true,
    ]
]);

$response = $client->post('/login', [
    'body' => [
        'login'    => $login,
        'password' => $password
    ]
]);

$response = $client->get('/images/srpr/logo11w.png');

$image = $response->getBody();

С Goutte 1 после добавления "guzzle/plugin-cookie": "~3.1" в Composer:

use Guzzle\Http\Client;
use Guzzle\Plugin\Cookie\CookiePlugin;
use Guzzle\Plugin\Cookie\CookieJar\ArrayCookieJar;

$client = new Client('https://www.google.pl');

$client->addSubscriber(new CookiePlugin(new ArrayCookieJar()));

$response = $client->post('/login', '', array('login' => $login, 'password' => $password))->send();

$response = $client->get('/images/srpr/logo11w.png')->send();

$image = $response->getBody();
person Scott M. Sanders    schedule 23.07.2014