I
I
Ilya2018-04-29 16:38:24
PHP
Ilya, 2018-04-29 16:38:24

How to fill out a form from another site through Guzzle and get the result?

Learning to work with Guzzle. I did a little exercise for myself.
Suppose there is a form on a third-party site with method="post" :
5ae5c89e5f100338321077.png
User fills in a single field with name="title", clicks a button - the site redirects it to result.php , gives the answer:
5ae5c96e91c30719099371.png
How can I programmatically fill out this form on my site and get a response ?
I do it with the following code, but the post parameter is not passed. How to fix?

require 'vendor/autoload.php';

// Подключаем класс Client
use GuzzleHttp\Client;
// Подключаем класс Request
use GuzzleHttp\Psr7\Request;

// Инициализируем класс для работы с удаленными веб ресурсами
$client = new Client();

// Инициализируем класс для работы с удаленным веб ресурсом
$request = new Request('POST', 'http://hometask.std-221.ist.mospolytech.ru/term2/php/test1/result.php', [
    'title' => 'Дубровский'
]);

// Задаем анонимную функцию, которая будет обрабатывать ответ сервера
$promise = $client->sendAsync($request)->then(function ($response) {
    echo $response->getBody();
});

// Запускаем соединение с удаленным ресурсом и передаем управление по обработке ответа анонимной функции
$promise->wait();

Answer the question

In order to leave comments, you need to log in

1 answer(s)
A
Ainur Valiev, 2018-04-30
@sidorchik

make a request for the final script, in your case it is result.php, and what parameters to pass.

// Инициализируем класс для работы с удаленным веб-ресурсом
    $request = new Request('GET', 'http://hometask.std-221.ist.mospolytech.ru/term2/php/test/result.php?title=12312312');

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question