HTTP запрос

VISA, TCP/IP, USB, CAN, GPIB и подобные протоколы
Ответить
Аватара пользователя
IvanLis

Activity Professionalism Tutorials Gold Man of the year 2012
Автор
guru
guru
Сообщения: 5458
Зарегистрирован: 02 дек 2009, 17:44
Награды: 7
Версия LabVIEW: 2015, 2016
Откуда: СССР
Благодарил (а): 27 раз
Поблагодарили: 86 раз

HTTP запрос

Сообщение IvanLis »

Перепробовал все известные мне варианты.
Подскажите, каким образом мне получить данные по URL:

Код: Выделить всё

http://club-europa.ru/assets/components/europaclub/action.php?action=common/getcheck&checkNum=21,4,2687,435
Необходимо получить текст страницы:

Код: Выделить всё

<table class="checkTable table table-hovered"><tr><th>Наименование</th><th>Цена</th><th>количество</th></tr><tr><td>АЦИДОЛАКТ БОЖЬЯ КОРОВКА 0,45Л 2,5% С ЛАК</td><td> 40.5 руб. </td><td>1 шт.</td></tr><tr><td>АЦИДОЛАКТ БОЖЬЯ КОРОВКА 0,45Л 2,5% С ЛАК</td><td> 40.5 руб. </td><td>1 шт.</td></tr><tr><td>СИГАРЕТЫ ВИНСТОН БЛУ</td><td> 125 руб. </td><td>1 шт.</td></tr><tr><td colspan="4"><b>*П</b> - пометка товаров попавших в спецакцию.</td></tr></table>
Снимок экрана от 2018-06-26 20-20-16.png
Пока ничего кроме:
{"success":false,"message":"","total":0,"errors":[],"object":[]}
получить не получилось. Со сниффером тоже толком ничего не вышло.
Аватара пользователя
dadreamer

Activity Professionalism Автор
professor
professor
Сообщения: 3926
Зарегистрирован: 17 фев 2013, 16:33
Награды: 4
Версия LabVIEW: 2.5 — 2022
Благодарил (а): 11 раз
Поблагодарили: 126 раз
Контактная информация:

Re: HTTP запрос

Сообщение dadreamer »

У меня по вышеприведённой ссылке тоже вылетает
{"success":false,"message":"","total":0,"errors":[],"object":[]}
Подозреваю, надо залогиниться, или же ссылка не та.
Аватара пользователя
IvanLis

Activity Professionalism Tutorials Gold Man of the year 2012
Автор
guru
guru
Сообщения: 5458
Зарегистрирован: 02 дек 2009, 17:44
Награды: 7
Версия LabVIEW: 2015, 2016
Откуда: СССР
Благодарил (а): 27 раз
Поблагодарили: 86 раз

Re: HTTP запрос

Сообщение IvanLis »

dadreamer писал(а):У меня по вышеприведённой ссылке тоже вылетает
{"success":false,"message":"","total":0,"errors":[],"object":[]}
Подозреваю, надо залогиниться, или же ссылка не та.
Видимо браузер автоматом из куков берет инфу для авторизации.
Попробовал с другого компа, действительно до идентификации ничего путного не выходит.
Нужно будет вникнуть и попробовать: http://labviewportal.org/viewtopic.php?f=87&t=9531
Аватара пользователя
dadreamer

Activity Professionalism Автор
professor
professor
Сообщения: 3926
Зарегистрирован: 17 фев 2013, 16:33
Награды: 4
Версия LabVIEW: 2.5 — 2022
Благодарил (а): 11 раз
Поблагодарили: 126 раз
Контактная информация:

Re: HTTP запрос

Сообщение dadreamer »

В большинстве случаев бывает достаточно одного POST-запроса с данными для входа, чтобы залогиниться (при условии, что все необходимые заголовки уже прописаны) - см. пример авторизации на mail. Как вариант, можно загрузить cookies, использующиеся в браузере (это будет работать, если сервер поддерживает долгоживующие сессии, но время от времени всё равно придётся менять cookies).
Аватара пользователя
IvanLis

Activity Professionalism Tutorials Gold Man of the year 2012
Автор
guru
guru
Сообщения: 5458
Зарегистрирован: 02 дек 2009, 17:44
Награды: 7
Версия LabVIEW: 2015, 2016
Откуда: СССР
Благодарил (а): 27 раз
Поблагодарили: 86 раз

Re: HTTP запрос

Сообщение IvanLis »

dadreamer писал(а):В большинстве случаев бывает достаточно одного POST-запроса с данными для входа, чтобы залогиниться (при условии, что все необходимые заголовки уже прописаны) - см. пример авторизации на mail. Как вариант, можно загрузить cookies, использующиеся в браузере (это будет работать, если сервер поддерживает долгоживующие сессии, но время от времени всё равно придётся менять cookies).
Вроде сделал, осталось перекодировать нормально.... (это в режиме отображения - Codes)

Код: Выделить всё

\1F\8B\b\00\00\00\00\00\00\03\CDR\CBj\C2@\14\FD\95\8B\D0MQ\A3\12w1_\D1\1F01\10h\A8E\A5k\B5\B4uU\EC\13i\D0\AA\85nZh\14\02\C1V\FD\853\7F\D4\93\t4\DDv\D7\C5\9D\99s\EE\BD\E7\0Es\C6\EA5\9D\C0\137hv\BB\8D\82\EB{\EE\F1\91fz\F9Z\F2\DBg^\C7k\15l\AB\D7a\F86\A6\88\90\E0\0B1\B6\D8aM\B4%\8E-\83I]\F0\AASQNlX\F7\89D]!V\035d\CF.K\1AZ3\8D\96\8D1\1B'\B8\C7\f!\CFOX\nn\b\1E\F1\8E\0F!\9Ea\CE\B8\E5i,\95\A2YG(\B5b\FD@\B0\90\AC\83r--%f\A5\\\17\D5W\E7X\95\E5\87\AE\8A\1A\A9a9\C3\FFe\F4\82\83\EF(1\C7\03\96x\13N\99\F0\89\17\043L\D3{\84x\C9\E5\AB\B5?\A8\8B\DB\0E\BA\A7\CD\93F\C1\A4\7F\8E}\88g\CBpl)\t\F6\B4\84\16\D2\8C\n"\E1\A6\9DT\FDt\CF\B2{\1A\BBV#\DAv!\E4\D4\80L\AC.\C9n\B8&\EA\FA\F7<C\7F\16\FB\1B(\BC`\0FR\02\00\00
Самое интересное, что OpenOffice подхватывает и декодирует файл нормально, а тот же блокнот не хочет, видимо в начале байтики лишние.
Нужно разбираться дальше....
Аватара пользователя
IvanLis

Activity Professionalism Tutorials Gold Man of the year 2012
Автор
guru
guru
Сообщения: 5458
Зарегистрирован: 02 дек 2009, 17:44
Награды: 7
Версия LabVIEW: 2015, 2016
Откуда: СССР
Благодарил (а): 27 раз
Поблагодарили: 86 раз

Re: HTTP запрос

Сообщение IvanLis »

Сегодня видимо не мой день.
Все работает, ответ получаю (значение сохранено в файле "по умолчанию").
Europa.vi
lv2016
(24.38 КБ) 165 скачиваний
Перекодировать никак не получается.
Сохраняю в файл:
file.txt
(313 байт) 151 скачивание
OpenOffice открывается файл нормально.
Снимок экрана от 2018-06-27 19-25-29.png
Судя по настройкам импорта, кодировка UTF-8:
Снимок экрана от 2018-06-27 19-26-22.png
Кто знает как правильно перекодировать, что бы получить текст, для его дальнейшей обработки?
Blackman

Activity
leader
leader
Сообщения: 932
Зарегистрирован: 17 янв 2016, 15:02
Награды: 1
Версия LabVIEW: 6.1,8.5,20

Re: HTTP запрос

Сообщение Blackman »

Данные в файле какие то "левые") Не похожи на текст приведенный в офисе.
В :labview: есть примитивы для работы с кодировкой UTF8 :wink:
Вложения
UTF8 Convertor Primitives.png
UTF8 Convertor Primitives.png (13.47 КБ) 7015 просмотров
Аватара пользователя
dadreamer

Activity Professionalism Автор
professor
professor
Сообщения: 3926
Зарегистрирован: 17 фев 2013, 16:33
Награды: 4
Версия LabVIEW: 2.5 — 2022
Благодарил (а): 11 раз
Поблагодарили: 126 раз
Контактная информация:

Re: HTTP запрос

Сообщение dadreamer »

IvanLis писал(а):Кто знает как правильно перекодировать, что бы получить текст, для его дальнейшей обработки?
Это архив. Открывается любым нормальным архиватором, например 7-Zip или WinRAR. Нужно распаковать содержащийся внутри файл и затем прочитать в :labview: как обычный текст.

Чем распаковать из-под :labview: - ну, можно поставить последний oglib_lvzip, там вроде бы должна быть поддержка Линукса.
Release 4.1.0, Released: Mar. 05, 2015
======================================

New features:
-------------
...
3) Added support for Windows and Linux 64 bit platforms
Или, может, есть какие-то другие тулкиты... :dntknw:
Blackman

Activity
leader
leader
Сообщения: 932
Зарегистрирован: 17 янв 2016, 15:02
Награды: 1
Версия LabVIEW: 6.1,8.5,20

Re: HTTP запрос

Сообщение Blackman »

Нет нормального архиватора) :D -> file.txt -> file.odt (online) -> wordpad -> save as text file.txt.txt -> change extension file.txt.html
Аватара пользователя
dadreamer

Activity Professionalism Автор
professor
professor
Сообщения: 3926
Зарегистрирован: 17 фев 2013, 16:33
Награды: 4
Версия LabVIEW: 2.5 — 2022
Благодарил (а): 11 раз
Поблагодарили: 126 раз
Контактная информация:

Re: HTTP запрос

Сообщение dadreamer »

Blackman писал(а):Нет нормального архиватора) :D -> file.txt -> file.odt (online) -> wordpad -> save as text file.txt.txt -> change extension file.txt.html
Зачем же так мучатьcя?.. Изображение
Blackman

Activity
leader
leader
Сообщения: 932
Зарегистрирован: 17 янв 2016, 15:02
Награды: 1
Версия LabVIEW: 6.1,8.5,20

Re: HTTP запрос

Сообщение Blackman »

В Headers точно указано: Content-Encoding: gzip
Коммент при извлечении: Single Packed File detected...
Вложения
file.gz
(313 байт) 146 скачиваний
Аватара пользователя
IvanLis

Activity Professionalism Tutorials Gold Man of the year 2012
Автор
guru
guru
Сообщения: 5458
Зарегистрирован: 02 дек 2009, 17:44
Награды: 7
Версия LabVIEW: 2015, 2016
Откуда: СССР
Благодарил (а): 27 раз
Поблагодарили: 86 раз

Re: HTTP запрос

Сообщение IvanLis »

dadreamer писал(а):Это архив. Открывается любым нормальным архиватором, например 7-Zip или WinRAR. Нужно распаковать содержащийся внутри файл и затем прочитать в :labview: как обычный текст.
:thank:
премного благодарен

Видимо жара сказывается, там же в заголовке указано:

Код: Выделить всё

Content-Encoding: gzip
Снимок экрана от 2018-06-28 15-57-01.png
----------------------
Спасибо всем за "коллективный разум"!
Вот решение:
Снимок экрана от 2018-06-28 16-25-42.png
Снимок экрана от 2018-06-28 16-25-42.png (8.88 КБ) 6979 просмотров
Для декомпрессии используется функция основанная на OpenG Zip Tools: https://forums.ni.com/t5/Example-Progra ... -p/3534832

По идее, в Windows нужно преобразование UTF-8 -> ASСII, но в Lunux и так кодировка UTF-8, по этому результат совпадает, а дополнительное преобразование кодировки можно исключить.
Снимок экрана от 2018-06-28 16-26-00.png
Вполне ожидаемый результат, вот что в Windows получилось:
Снимок экрана от 2018-06-28 16-48-09.png
Вечером начну парсить и сохранять в БД.
Аватара пользователя
IvanLis

Activity Professionalism Tutorials Gold Man of the year 2012
Автор
guru
guru
Сообщения: 5458
Зарегистрирован: 02 дек 2009, 17:44
Награды: 7
Версия LabVIEW: 2015, 2016
Откуда: СССР
Благодарил (а): 27 раз
Поблагодарили: 86 раз

Re: HTTP запрос

Сообщение IvanLis »

Сегодня начал делать на 64bit системе, оказывается OpenG.lib / lvzip по умолчанию не поддерживает Linux 64bit.
Пришлось вручную скачивать необходимую библиотеку с репозитария: https://sourceforge.net/p/opengtoolkit/ ... ip/source/
Править используемые функции, только тогда заработало.
Аватара пользователя
dadreamer

Activity Professionalism Автор
professor
professor
Сообщения: 3926
Зарегистрирован: 17 фев 2013, 16:33
Награды: 4
Версия LabVIEW: 2.5 — 2022
Благодарил (а): 11 раз
Поблагодарили: 126 раз
Контактная информация:

Re: HTTP запрос

Сообщение dadreamer »

IvanLis писал(а):Сегодня начал делать на 64bit системе, оказывается OpenG.lib / lvzip по умолчанию не поддерживает Linux 64bit.
Пришлось вручную скачивать необходимую библиотеку с репозитария: https://sourceforge.net/p/opengtoolkit/ ... ip/source/
Править используемые функции, только тогда заработало.
Я же выше дал ссылку на актуальную версию с поддержкой 64 бит:
dadreamer писал(а):Чем распаковать из-под :labview: - ну, можно поставить последний oglib_lvzip, там вроде бы должна быть поддержка Линукса.
Release 4.1.0, Released: Mar. 05, 2015
======================================

New features:
-------------
...
3) Added support for Windows and Linux 64 bit platforms
2018-06-29_13-08-30.jpg
Для скачивания требуется регистрация на Лаве. На форум не могу залить, к сожалению, размер файла >2 МБ. oglib_lvzip-4.1.0-b3.ogp ставится через VIPM точно так же, как и *.vip пакеты.
Ответить
  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Коммуникация с приборами»