Russian Qt Forum
Март 29, 2024, 14:17
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Программирование
>
Общий
>
QNetworkRequest vs AJAX возможно ли такое вообще? (РЕШЕНО)
Страниц: [
1
]
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: QNetworkRequest vs AJAX возможно ли такое вообще? (РЕШЕНО) (Прочитано 6693 раз)
Игорь
Гость
QNetworkRequest vs AJAX возможно ли такое вообще? (РЕШЕНО)
«
:
Ноябрь 22, 2017, 12:20 »
Добрый день. Стоит задача: передавать параметры и получить данные со стороннего сервиса (который никакого API не предоставляет). Чтоб далеко не ходить, вот конкретный пример
https://egisz.medkirov.ru/e-reg2.nsf/searchByStreet.xsp
, на страничке
https://egisz.medkirov.ru/e-reg2.nsf/functions.js
есть функция searchDistrict() в теле которой идет AJAX вызов
Код:
$.ajax({
url: "getRegion.xsp",
type: "POST",
data: ({ city:$('#city').val(), q: $('#street').val(), f: "getStreet", village: $('#village').val(), dom: $('#dom').val(), medgroup:$("#medgroup").val()}),
dataType: "html",
success: function(response){
var items = response.split("\n");
Дак вот собственно вопрос:
можно ли с помощью какого-то Qt-класса (например QNetworkRequest) сделать вызов getRegion.xsp с параметрами, и почитать результат?
Спасибо.
«
Последнее редактирование: Ноябрь 28, 2017, 09:21 от Игорь
»
Записан
Игорь
Гость
Re: QNetworkRequest vs AJAX возможно ли такое вообще?
«
Ответ #1 :
Ноябрь 28, 2017, 08:40 »
Чувак,
1. ты сформулировал свой вопрос не верно. Тебе нужен просто вызов функции getRegion.xsp с параметрами;
2. если у тебя возникают проблемы, или что-то не работает, и ты не знаешь что, запоминай следующую универсальную инструкцию:
- Прежде всего нужна максимально полная отладочная информация, в твоем случае это
https://www.telerik.com/fiddler
, но я для тех же целей воспользовался
https://www.wireshark.org/
и для отладки просто юзал похожий сайт без использования ssl
- Дальше все просто, смотришь сетевые пакеты оригинальные (генерируемые вебмордой браузера), и свои. Находишь разницу, и сводишь их до тех пор, пока не
получишь нужный тебе ответ, или не сведешь их 1 к 1.
«
Последнее редактирование: Ноябрь 29, 2017, 15:47 от Игорь
»
Записан
Игорь
Гость
Re: QNetworkRequest vs AJAX возможно ли такое вообще?
«
Ответ #2 :
Ноябрь 28, 2017, 09:00 »
Цитата: Игорь от Ноябрь 28, 2017, 08:40
- Прежде всего нужна максимально полная отладочная информация, в твоем случае это
https://www.telerik.com/fiddler
, но я для тех же целей воспользовался
https://www.wireshark.org/
и для отладки просто юзал похожий сайт без использования ssl
Ухты, спасибо, дружище. Все сразу получилось, где ты раньше-то был. У меня оказывается проблема-то была в кодировке при передаче параметров, а я все на заголовки грешил...
Вот что у меня по итогу получилось:
Код:
const static QUrl AddressServiceUrl = QString("https://egisz.medkirov.ru/e-reg2.nsf/getRegion.xsp");
.........
.........
networkManager = new QNetworkAccessManager(this);
networkManager->setProxy((!QNetworkProxyFactory::systemProxyForQuery().isEmpty()) ? QNetworkProxyFactory::systemProxyForQuery()[0] : QNetworkProxy());
QNetworkRequest requisitesServiceRequest(AddressServiceUrl);
QByteArray requisitesServiceRequestBody;
requisitesServiceRequestBody.append("city=");
requisitesServiceRequestBody.append(QUrl::toPercentEncoding("Киров"));
requisitesServiceRequestBody.append("&q=");
requisitesServiceRequestBody.append(QUrl::toPercentEncoding("Грибоедова"));
requisitesServiceRequestBody.append("&f=getStreet&village=&dom=37&medgroup=");
requisitesServiceRequestBody.append(QUrl::toPercentEncoding("Терапия"));
QNetworkReply *requisitesServiceReply = networkManager->post(requisitesServiceRequest, requisitesServiceRequestBody);
connect(requisitesServiceReply, &QNetworkReply::finished, [=]() {
if ((requisitesServiceReply->error() == QNetworkReply::NoError)) {
QString requisitesServiceReplyBody = QString::fromUtf8(requisitesServiceReply->readAll());
QUrl qur = requisitesServiceReply->url();
QList<QByteArray> head = requisitesServiceReply->rawHeaderList();
QList<QNetworkReply::RawHeaderPair> headd = requisitesServiceReply->rawHeaderPairs();
}
});
«
Последнее редактирование: Ноябрь 28, 2017, 11:05 от Игорь
»
Записан
kambala
Джедай : наставник для всех
Offline
Сообщений: 4724
Re: QNetworkRequest vs AJAX возможно ли такое вообще? (РЕШЕНО)
«
Ответ #3 :
Ноябрь 30, 2017, 13:15 »
что тут за ад творится?
Записан
Изучением C++ вымощена дорога в Qt.
UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
__Heaven__
Джедай : наставник для всех
Offline
Сообщений: 2130
Re: QNetworkRequest vs AJAX возможно ли такое вообще? (РЕШЕНО)
«
Ответ #4 :
Ноябрь 30, 2017, 13:51 »
Цитата: kambala от Ноябрь 30, 2017, 13:15
что тут за ад творится?
чтобы разобраться с этим, нужно съездить в Киров на Грибоедова 37 и пройти некую терапию. ыыы
Записан
__Heaven__
Джедай : наставник для всех
Offline
Сообщений: 2130
Re: QNetworkRequest vs AJAX возможно ли такое вообще? (РЕШЕНО)
«
Ответ #5 :
Ноябрь 30, 2017, 13:56 »
хех
Записан
Игорь
Гость
Re: QNetworkRequest vs AJAX возможно ли такое вообще? (РЕШЕНО)
«
Ответ #6 :
Декабрь 08, 2017, 15:56 »
Ага, ага, пришли постебаться, нет чтоб чайнику помочь.
Заводы стоят, одни
гитаристы
стеберы в стране.
Записан
titan83
Гость
Re: QNetworkRequest vs AJAX возможно ли такое вообще? (РЕШЕНО)
«
Ответ #7 :
Декабрь 08, 2017, 20:52 »
Цитата: kambala от Ноябрь 30, 2017, 13:15
что тут за ад творится?
похоже на безжалостную российскую автоматизацию.
Записан
titan83
Гость
Re: QNetworkRequest vs AJAX возможно ли такое вообще? (РЕШЕНО)
«
Ответ #8 :
Декабрь 08, 2017, 20:52 »
А по теме: автор, так у тебя все получилось? или нет? непонятно.
Записан
Игорь
Гость
Re: QNetworkRequest vs AJAX возможно ли такое вообще? (РЕШЕНО)
«
Ответ #9 :
Декабрь 11, 2017, 07:36 »
Цитата: titan83 от Декабрь 08, 2017, 20:52
А по теме: автор, так у тебя все получилось? или нет? непонятно.
да, все получилось.
Записан
Страниц: [
1
]
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Qt
-----------------------------
=> Вопросы новичков
=> Уроки и статьи
=> Установка, сборка, отладка, тестирование
=> Общие вопросы
=> Пользовательский интерфейс (GUI)
=> Qt Quick
=> Model-View (MV)
=> Базы данных
=> Работа с сетью
=> Многопоточное программирование, процессы
=> Мультимедиа
=> 2D и 3D графика
=> OpenGL
=> Печать
=> Интернационализация, локализация
=> QSS
=> XML
=> Qt Script, QtWebKit
=> ActiveX
=> Qt Embedded
=> Дополнительные компоненты
=> Кладовая готовых решений
=> Вклад сообщества в Qt
=> Qt-инструментарий
-----------------------------
Программирование
-----------------------------
=> Общий
=> С/C++
=> Python
=> Алгоритмы
=> Базы данных
=> Разработка игр
-----------------------------
Компиляторы и платформы
-----------------------------
=> Linux
=> Windows
=> Mac OS X
=> Компиляторы
===> Visual C++
-----------------------------
Разное
-----------------------------
=> Новости
===> Новости Qt сообщества
===> Новости IT сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...