|
0 / 0 / 0
Регистрация: 19.08.2014
Сообщений: 3
|
|
IdHTTP POST запрос. Как получить содержимое ответа переданное в окно?19.08.2014, 12:49. Показов 4314. Ответов 4
Метки нет (Все метки)
Посылаю post на авторизацию, возвращается заглавная страница с подтверждением. Все ок.
Далее посылаю get и обрабатываю их ответы. Все ок. Проблем нет. Теперь нужно послать post на выполнение команды сервером. Сервер выполняет команду (работает с оборудованием) и возвращает определенные данные (например: "время работы принтера 12 часов"). Когда я делаю запрос с помощью браузера (например мозила), он посылает еще и гет запрос который возвращает "пожалуйста подождите...". А пост запрос возвращает "время работы принтера 12 часов" в новом окошке с кнопкой ОК (как бы поверх сайта). Это так себя ведет браузер. Посылаю тот же запрос через инди: IdHTTP1->Post(Url,PostData,get_len) возвращает в get_len(это TStringStream) содержимое заглавной страницы, как и при авторизации. IdHTTP1->ResponseText возвращает "HTTP/1.1 200 OK". И никакой информации о работе принтера! Как мне ее получить? Помогите пожалуйста. При запросе в мозиле, в HttpAnalyzerStdV7 у пост запроса на вкладке "Response Content" нужная мне инфа о работе принтера, а у гет "пожалуйста подождите...". Но при запросе через инди и у гет и у пост на вкладке "Response Content" заглавная страница с успешной авторизацией. Что же я посылаю не так? Всю инфу из HttpAnalyzerStdV7 вставлял в инди и редиректа страницу тоже. При этом ответ в мозилу в Raw Stream такой же HTTP/1.1 200 OK + другая инфа и в конце инфа о работе принтера, а через инди в конце заглавная страница. Добавлено через 17 минут единственное отличие которое сейчас заметил в HttpAnalyze, в мозиле при запросе стоит: X-Requested-With: XMLHttpRequest (такого в инди не нашел) Connection: keep-alive (но в инди в свойствах то же самое пишу) а при ответе через мозилу: Connection: keep-alive а через инди почему то: Connection: close не смотря на код: IdHTTP1->Request->Connection = "keep-alive"; я не пойму что это значит
0
|
|
| 19.08.2014, 12:49 | |
|
Ответы с готовыми решениями:
4
Как сохранить cookies из ответа на POST-запрос? Как отправить POST запрос на сервер без обработки ответа? |
|
12 / 12 / 9
Регистрация: 12.04.2012
Сообщений: 259
|
|
| 20.08.2014, 11:21 | |
|
Напишите сайт на который посылаете запросы, попробую разобраться!
0
|
|
|
0 / 0 / 0
Регистрация: 19.08.2014
Сообщений: 3
|
|
| 20.08.2014, 14:07 [ТС] | |
|
К сожалению не смогу предоставить сайт. Это корпоративный рабочий сайт, доступ к нему ограничен.
Вообще я предполагаю, что все же виной всему keep-alive который судя по всему не работает в Indy10 в Builder-е. Как мне кажется запрос отправляется но сервер не успевает отправить ответ, потому что ему нужно время (пара секунд) что бы что то сделать с оборудованием, а только потом он посылает ответ. Я начал копать в сторону winapi, попробую сделать запрос с его помощью. Хотя конечно же вся программа написана под Indy. Не могу пока что понять как делать запросы через HttpAnalyzer , на любой запрос пишет UnknownError. Может что то посоветуете чем лучше делать запросы (тестить)? Вся прога уже сделана, осталось только вот последний штрих, но очень важный штрих) что то прям застрял на нем)
0
|
|
|
|
||||
| 20.08.2014, 14:43 | ||||
|
Добавлено через 2 минуты
0
|
||||
|
0 / 0 / 0
Регистрация: 19.08.2014
Сообщений: 3
|
|
| 20.08.2014, 15:37 [ТС] | |
|
HttpAnalyzer7 я как раз сравнивал запросы, если вы читали первый пост там было видно что разница в keep-alive который не может послать моя программа и в X-Requested-With.
Итак. Проблема решена. Ура! ![]() Прикрутил расширение к браузеру для отправки пост запросов. Попробовал и так и сяк. Оказалось проблема не в keep-alive, а в этом самом X-Requested-With: XMLHttpRequest. Добавил к запросу: IdHTTP1->Request->CustomHeaders->Add("X-Requested-With:XMLHttpRequest"); (не знал что так можно =). X-Requested-With: XMLHttpRequest означает что будет использоваться Ajax. Какая то технология "заключающаяся в «фоновом» обмене данными браузера с веб-сервером. В результате, при обновлении данных веб-страница не перезагружается полностью, и веб-приложения становятся быстрее и удобнее." (с)Wikipedia Видимо отсюда и окно в браузере. Всем спасибо за внимание, программа готова. Можно расходиться по домам. ![]() PS. сто лет не был на форуме)
0
|
|
| 20.08.2014, 15:37 | |
|
Помогаю со студенческими работами здесь
5
IdHTTP (POST запрос) Idhttp post запрос с текстом и картинкой Не отправляется POST запрос idHTTP - что делаю не так?
Получение ответа на POST запрос Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога
Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
|
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
|
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога
В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
|
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
|
|
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога
Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
|
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
|
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования.
Часть библиотеки BedvitCOM
Использованы. . .
|
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога
SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
|