gifts2017

Отправка HTTP-строки с обработкой ответа

Опубликовал Alexander Shvets (Alexander.Shvets) в раздел Обмен - Интеграция с WEB

Отправка HTTP-строки с обработкой ответа для реализации вызова PHP-скрипта, к которому обращался HTTP-ссылкой.
Вызов InternetExplorer.Aplications не прельщало. По этому использовался метод GetCOMObject("", "Microsoft.XMLHTTP") с обработкой ответа.

Для реализации одного из проектов необходимо было вызывать PHP-скрипт, к которому обращался HTTP-ссылкой.
Вызов InternetExplorer.Aplications не прельщало. По этому использовался метод GetCOMObject("", "Microsoft.XMLHTTP") с обработкой ответа.

В обработке есть так же пример как парсить XML ответ.

Лично мной использовалось в:
- общение с ГеоКодером и Картами(Гугл, Яндекс)
- обмен с сайтом (команда выгрузки/загрузки)

Интерфейса как такового нет... Рисунков нет - т.к. нечего показывать, кроме кода =)

Коменты присутствуют, но все же отладка вам в помощь.

Юзать можно на любой конфигурации. Ограничение в платформе (8.2), хотя код будет работать и на 8.1.

Скачать файлы

Наименование Файл Версия Размер Кол. Скачив.
Передача_адресной_строки_по_HTTP_протоколу.epf
.epf 7,17Kb
14.08.12
140
.epf 7,17Kb 140 Скачать

См. также

Подписаться Добавить вознаграждение

Комментарии

1. Доржи Балбаров (Angeros) 15.08.12 04:07
А вот "- общение с ГеоКодером и Картами(Гугл, Яндекс)" Это уже интересно. Поделитесь обработкой и ALL?!
2. Александр (МимохожийОднако) 15.08.12 07:44
Любопытная штучка. Однажды нужна была такая задачка. Надо посмотреть.
3. Alexander Shvets (Alexander.Shvets) 15.08.12 11:35
(1) Angeros,
Допилю, сдам проект, получу за него денюжку и только тогда расшарю. До этого момента - сам понимаешь, не имею права ;)

Но если интересует что-то конкретное - пиши, советом помогу ;)
4. Misha ⁠ (Magister) 15.08.12 23:37
А в чем глубокий смысл использования COM-объекта?
В платформе есть родные методы для работы с HTTP/HTTPS, которые отлично работают в большинстве ситуаций.
Разве что если нужно отправлять большие файлы - десятки мегабайт - тогда у меня работало нестабильно. А небольшие - уже больше 2-х лет в продакшене, запросы каждые несколько минут. Никаких проблем.
BigB; pumbaE; +2 Ответить 3
5. Александр Цегельников (markers) 16.08.12 05:48
(4) Magister, Согласен, получай XML и параси его средствами 1С.
6. Alexander Shvets (Alexander.Shvets) 16.08.12 20:24
(4) Magister,

Вы сами и ответили на свой вопрос. В стабильности и универсальности.

Надо что-то просто отправить (дать пинок скрипту) - без проблем...
Необходимо в ответе получить объект - получаем бинарный код, который засовываемым в XML.
без ПОСТ и ФТП.

Как по мне - так почти на все случаи жизни... Тем более работает быстро.


(5) markers,

Если нужно одновременно общаться с несколькими ресурсами (отправить, получить результат, потом полученный результат отправить дальше и т.д.) - предложенный метод поможет избежать "считалок" и "держалок" в коде.

получай XML и параси его средствами 1С,

собственно это, можно сказать, я и делаю ;)
7. Misha ⁠ (Magister) 16.08.12 21:53
(6) Причем тут FTP? Платформенный метод глючил у меня только при попытке отправить файл размером около 70 Мб. Больше с ним проблем абсолютно никаких не наблюдалось.

А про "считалки" и "держалки" не понял.
8. Андрей Казанцев (ander_) 17.08.12 08:55
(4) Magister,
Поправьте, если я ошибаюсь, но "родными" 1с-ными методами нельзя получить ответ в виде строки. Только файл.
9. Alexander Shvets (Alexander.Shvets) 17.08.12 11:40
(7) Magister,

А про "считалки" и "держалки" не понял.

Если интересуют основы XMLHTTP - почитайте тут. (внешний источник)
"считалки" и "держалки" - это аналог асинхронного запроса в 1С, мы возвращаем управление 1С-ой когда получаем обратный ответ.
10. Misha ⁠ (Magister) 17.08.12 14:23
(8) Да, только в файл. Но я в этом не вижу проблемы - файл можно прочитать и удалить :)

(9) Спасибо, что это такое я знаю. А вот про асинхронность - т.е. вы хотите сказать, что используете XMLHTTP из 1С асинхронно? Как тогда ловите событие? Я способов, кроме использование ВК, не вижу.
11. Андрей Казанцев (ander_) 17.08.12 15:05
(10) Magister, хорошо если сервер отвечает файлом. А если строкой? Во всяком случае у меня не получилось HTTPСоединение заставить работать в таком режиме. Хотя не исключаю что возможно я что-то не так делал.
12. Alexander Shvets (Alexander.Shvets) 17.08.12 15:56
(10) Magister,
Так же использовал внешние. Досконально вопрос не изучал, но что то подсказывает, что реализовать можно и без компонент.

Но это, как мне нажиться - немного офтоп. Но все же спасибо за дискутивную тезу =)) Есть над чем поразмыслить.
Если припадет нужда асинхронно юзать XMLHTTP еще раз - попытаюсь реализовать в одном объекте. Если результат будет позитивный - обязательно поделюсь.
13. Misha ⁠ (Magister) 18.08.12 00:44
(11) У меня отвечает именно строкой. И всё отлично работает. Наверное, вы таки что-то не так делали.

(12) Асинхронность - это да, только средствами 1С реализовать проблематично. Но, справедливости ради, ни разу не встречал задачи, в которой она была бы нужна. Что впрочем не означает абсолютной ненужности :)

И да, если уж использовать ВК - я бы взял что-то своё, например, использующее libcurl. И реализовал на NativeAPI. Чтобы и на сервере под Linux всё тоже работало.
14. Dmitry Semenov (dima1c) 20.08.12 16:22
Плюсанул, сам так делал...
15. Осипов Сергей (fixin) 22.08.12 10:49
у этого COM-объекта, который заюзал автор, есть одно хорошее преимущество - можно назначить тайм-аут.
я сначала пробовал 1с-овский HTTPRequest, но из-за отсутствия тайм-аута порой тупо повисала 1с.
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа