Почтальон: отправьте XML как тело, используя application / x-www-form-urlencoded в качестве типа контента - PullRequest
0 голосов
/ 09 февраля 2019

Хорошо, во-первых: я не несу ответственности за этот код.Я имею дело с роутером.Этот маршрутизатор имеет веб-интерфейс, и код, который я собираюсь показать, находится в веб-интерфейсе маршрутизатора.Моя работа заключается в создании приложения для настройки этого маршрутизатора.И мне нужно мое приложение для выполнения операции входа в систему в маршрутизаторе.

Дело в том, что разработчики, создавшие веб-интерфейс для этого маршрутизатора, заставили маршрутизатор принять почтовый запрос, в котором тело запроса имеет видxml, а тип контента - application/x-www-form-urlencoded !!!!(whaaaaaat ???)

request being sent

Исходный код, который генерирует этот запрос, находится на странице:

function PostXML_log(pUrl, value) {
    $.ajax({
        type: "POST",
        dataType: 'xml',
        url: pUrl,
        processData: false,
        data: value,
        async: true,
        beforeSend: function () { show_message("wait"); },
        success: function (data) {
            var code = $(data).find('CODE').text();
            if (code == "0" || code == "-1") {
                $.cookie.json = false;
                $.cookie("stork", $(data).find('MESSAGE').text(), { expires: 1 });
                if (code == "-1")
                    window.location = "mac_err.html";
                else
                    location.href = "../main_status.html";
            }
            else show_message("error", err_message)
        },
        error: function () { show_message("error", 'loading Error...'); },
        timeout: 20000
    });

}

function loginIn() {
    var username = 'admin';//$('#username').val();
    var password = ASCII2HEX($('#login_pwd').val());
    var xml = '<?xml version="1.0" encoding="utf-8"?><LOGIN><USER_NAME>' + username + '</USER_NAME><PASSWD>' + password + '</PASSWD></LOGIN>';
    PostXML_log("/cgi-bin/cgi.cgi?/app/route/login", xml);
};

Проблемав том, что я не могу найти способ воспроизвести это поведение с помощью Почтальона.Я не смог найти способ отправить тело и одновременно использовать application/x-www-form-urlencoded в качестве типа контента.

Я попробовал 4 разные стратегии, но безуспешно:

1 - Отправить как телоиспользование типа содержимого application / xml не приводит к получению ответа (отправка в виде простого текста или text / xml с одинаковыми результатами):

enter image description here

2- Отправить XML как ключ формы, приводит к ошибке

enter image description here

3 - Отправить XML как значение формы, приводит к ошибке

enter image description here

4 - отправить xml как ключ и значение, ошибка: (я попытался поместить тег <xml> xml в качестве ключа и тег <login> в качестве значения, а также поставитьвесь xml как ключ и значение, не повезло)

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...