|
Работа с веб-сервисами | ☑ | ||
---|---|---|---|---|
0
mzelensky
27.09.11
✎
16:11
|
Народ, подскажите, а то туплю ужасно!
Имеется веб-сервер, который обрабатывает определенные запросы, которые ему посылают и выдает в качестве ответа xml-файлы. Вот тест сервера: http://212.33.235.243/WebServer/Service1.asmx Например, выбираем там "GetAllObjInfo" - далее там описаны примеры запросов и ответов на них. Как всю эту беду можно обработать из 1с-ки ??? т.е. послать запрос на этот сервер и получить ответ ??? |
|||
1
mzelensky
27.09.11
✎
16:12
|
вроде как прописать сам запрос - ничего сложного...в 1с-ке просто формируем нужные строку с параметрами...а что дальше?
|
|||
2
Asmody
27.09.11
✎
16:20
|
есть такой объект в 1С — WSСсылка называется
|
|||
3
Asmody
27.09.11
✎
16:21
|
можно ознакомиться Книга знаний: v8: Использование внешних web-сервисов в 1С:Предприятие 8 , правда она устарела несколько
|
|||
4
mzelensky
27.09.11
✎
16:25
|
а в чем устарела?!
|
|||
5
mzelensky
27.09.11
✎
16:35
|
(3) не совсем пойму где взять "URL импортируемого WSDL" ??? для создания "WS-ссылки"
|
|||
6
Asmody
27.09.11
✎
16:35
|
||||
7
mzelensky
27.09.11
✎
16:37
|
(6) уже пробовал - ошибка в 1С - неверный формат!
|
|||
8
mzelensky
27.09.11
✎
16:42
|
||||
9
Asmody
27.09.11
✎
16:45
|
попробовал. ошибка. значит, не судьба с этим сервисом по SOAP поработать.
пиши запросы через HTTPСоединение, благо через GET/POST там тоже какой-то интерфейс имеется |
|||
10
mzelensky
27.09.11
✎
16:52
|
(9) ладно...как в этом случае будет организована работа? я через "HTTPСоединение" запрашиваю некий адрес с параметрами...а что получаю в ответ???
|
|||
11
Asmody
27.09.11
✎
17:05
|
(10) мне начать СП продавать по кускам?
HTTPСоединение (HTTPConnection) Получить (Get) Синтаксис: Получить(<Источник>, <ИмяВыходногоФайла>, <Заголовки>) Параметры: <Источник> (обязательный) Тип: Строка. Адрес ресурса на сервере. <ИмяВыходногоФайла> (обязательный) Тип: Строка. Имя файла, в который помещаются данные полученного ресурса. <Заголовки> (необязательный) Тип: Строка. Указываются заголовки, добавляемые к запросу на сервер. Текстовые пары вида <Заголовок>:<Значение>, разделяемые комбинацией ВК + ПС. Описание: Получает ресурс из указанного адреса. Доступность: Тонкий клиент, сервер, толстый клиент, внешнее соединение. |
|||
12
mzelensky
27.09.11
✎
17:20
|
(11) я умею читать СП...мне не понятно следующее - перед тем, как СКАЧАТЬ ФАЙЛ С СЕРВЕРА, его нужно сгенерировать. Чтобы сгенерировать файл, мне нужно послать запрос на этот сервер, потом дождаться формирования файла ,а уж потом его скачивать!!!
т.е. вопрос: как все это сделать? |
|||
13
Asmody
27.09.11
✎
17:21
|
(12) что за бред? где написано, что тебе нужно скачать файл с сервера?
|
|||
14
mzelensky
27.09.11
✎
17:23
|
(13) читай (10). Я и пытаюсь узнатЬ .что я получу на выходе?!?!? Написано .что xml- файл, но как я этот xml получу нигде не сказано :(
|
|||
15
aleks-id
27.09.11
✎
17:23
|
делай через MSSoap.SoapClient30
на форуме куча примеров есть для работы |
|||
16
mzelensky
27.09.11
✎
17:25
|
(15) да мне уж хоть как-нибудь...а то 10 вариантов, все говорят, что это работает, но почему-то когда начинаешь разбираться/вникать - выходит, что это не, что нужно!
|
|||
17
Asmody
27.09.11
✎
17:25
|
(14) где написано, что ты получишь xml-файл? ты получишь ответ с сервера в виде xml. 1Ска сохранит тебе его в файл, имя которого ты укажешь в методе Получить() (или ОтправитьДляОбработки() )
|
|||
18
mzelensky
27.09.11
✎
17:26
|
(16) + чуваки из тех. поддрежки (те чей это сервис) вообще ничего не говорят...тупо дали этот тестовый адрес непонятный и список возможных имен запросов - ВСЕ...больше ничего добиться не могу :(
|
|||
19
mzelensky
27.09.11
✎
17:27
|
(17) есть простенький рабочий пример с "HTTPСоединение"?
В "Я" искал ,но ничего путного пока не вижу. |
|||
20
Asmody
27.09.11
✎
17:29
|
Файл=Новый Файл(ФайлСообщения);
ЗаголовокСообщения="Content-Type: text/xml"+Символы.ВК+Символы.ПС+ "Content-length: "+Формат(Файл.Размер(),"ЧГ=0"); ФайлРезультата=ПолучитьИмяВременногоФайла("xml"); Соединение = Новый HTTPСоединение(Сервер); Соединение.Post(ФайлСообщения, URL, ФайлРезультата, ЗаголовокСообщения); ЧтениеXML=Новый ЧтениеXML; ЧтениеXML.ОткрытьФайл(ФайлРезультата); Результат=РазобратьОтвет(); ЧтениеXML.Закрыть(); УдалитьФайлы(ФайлСообщения); УдалитьФайлы(ФайлРезультата); |
|||
21
mzelensky
27.09.11
✎
17:34
|
(20) все-равно не догоняю пару моментов...что здесь "ФайлСообщения" ? откуда ты его взял и что в нем должно быть? В СП написано, что это "Адрес файла-источника." - что под этим подразумевают?
|
|||
22
Asmody
27.09.11
✎
17:41
|
ФайлСообщения — это файл с параметрами, который я отправляю на сервер для обработки. Что в нём будет, зависит от сервера. У тебя это будет скорее всего обычный текст вида:
ИмяПараметра=ЗначениеПараметра |
|||
23
Asmody
27.09.11
✎
17:45
|
сразу всё прокомментирую:
Сервер — это адрес сервера, у тебя будет 212.33.235.243 URL — адрес ресурса без адреса сервера. Т.е. для http://212.33.235.243/WebServer/Service1.asmx?op=ConnectToServer будет равно /WebServer/Service1.asmx?op=ConnectToServer РазобратьОтвет(ЧтениеXML) — это функция, которая разбирает полученный xml и возвращает некоторую структуру данных 1С |
|||
24
mzelensky
27.09.11
✎
17:48
|
А вот то, что они пишут здесь для ПОСТА:
http://212.33.235.243/WebServer/Service1.asmx?op=GetAllObjects "POST /WebServer/Service1.asmx/GetAllObjects HTTP/1.1 Host: 212.33.235.243 Content-Type: application/x-www-form-urlencoded Content-Length: length a=string" ??? |
|||
25
mzelensky
27.09.11
✎
17:50
|
(23) завтра буду пробовать конектиться :( сейчас уже голова кипит!
Спасибо за помощь! |
|||
26
Asmody
27.09.11
✎
17:54
|
(24) первые две строки пропускаем, Content-Type и Content-Length передаем через ЗаголовокСообщения, а a=string и прочее кидаем в файл ФайлСообщения
|
|||
27
oleg_km
27.09.11
✎
18:46
|
(26) Content-Length не нужно IE умный сам формирует
|
|||
28
Asmody
27.09.11
✎
19:14
|
(27) у меня без него на стороне сервера ошибка вылезала
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |