Создание запроса POST с использованием кукловода с полезной нагрузкой JSON - PullRequest
0 голосов
/ 29 октября 2018

Я пытаюсь сделать POST-запрос с использованием puppeteer и отправить объект JSON в запросе, однако у меня истекает время ожидания ... если я пытаюсь отправить обычные закодированные данные формы, которые по крайней мере получить ответ с сервера о неверном запросе ... вот соответствующая часть кода

await page.setRequestInterception(true);
    const request = {"mac": macAddress, "cmd": "block"};
    page.on('request', interceptedRequest => {

        var data = {
            'method': 'POST',
            'postData': request
        };

        interceptedRequest.continue(data);
    });
    const response = await page.goto(configuration.commandUrl);     
    let responseBody = await response.text();

Я использую тот же код, чтобы сделать запрос GET (без полезной нагрузки), и он работает

1 Ответ

0 голосов
/ 29 октября 2018

postData необходимо закодировать как данные формы (в формате key1=value1&key2=value2).

Вы можете создать строку самостоятельно или использовать встроенный модуль querystring :

const querystring = require('querystring');
// ...
        var data = {
            'method': 'POST',
            'postData': querystring.stringify(request)
        };

В случае, если вам нужно предоставить данные JSON:

            'postData': JSON.stringify(request)
...