8.х WEB http сервисы

Тема в разделе ""1C:Web-Сервер"", создана пользователем TODD22, 30 июл 2015.

  1. shurikvz
    Offline

    shurikvz Модераторы Команда форума Модератор

    Регистрация:
    1 окт 2009
    Сообщения:
    8.409
    Симпатии:
    316
    Баллы:
    104
    Код:
    ХМЛВзаиморасчеты = ТЗВзаиморасчеты();
    
    HTTP = Новый HTTPСоединение(95.181.65.555,222,,,,,); //Какие там параметры посмотреть надо порядок
    
    ИмяФайлаЗапроса = ПолучитьИмяВременногоФайла();
    
    ПрефиксАдреса = "main?" // или /main? не знаю, и так и так
    СтрокаЗапроса = "func=setbillingstatus&auth_login=login&auth_pass=test; //про параметр xml= я ничего не знаю. Документацию надо читать, может имя файла требуется передавать
    
    Заголовки = Новый Соответствие;
    Заголовки.Вставить("Content-Type", "application/x-www-form-urlencoded"); //точно этот заголовок нужен?
    
    ТекПоток = Новый ЗаписьТекста(ИмяФайлаЗапроса, КодировкаТекста.UTF8);
    ТекПоток.Записать(ХМЛВзаиморасчеты);
    ТекПоток.Закрыть();
    
    ИмяФайлаОтвета = ПолучитьИмяВременногоФайла();
    Попытка
    HTTP.ОтправитьДляОбработки(ИмяФайлаЗапроса, ПрефиксАдреса + СтрокаЗапроса, ИмяФайлаОтвета, Заголовки);
    Исключение
    Сообщить(ОписаниеОшибки);
    Возврат;
    КонецПопытки;
    
    
    
    //Здесь разобрать ФайлОтвета
    
  2. alexburn
    Offline

    alexburn Модераторы Команда форума Модератор

    Регистрация:
    5 янв 2009
    Сообщения:
    14.735
    Симпатии:
    508
    Баллы:
    204
    Стойте-стойте. Мы сейчас разговариваем про WEB-сервисы или про простую передачу файлов на ресурс ?
  3. shurikvz
    Offline

    shurikvz Модераторы Команда форума Модератор

    Регистрация:
    1 окт 2009
    Сообщения:
    8.409
    Симпатии:
    316
    Баллы:
    104
    что-то вроде этого должно быть
    --- Объединение сообщений, 30 июл 2015 ---
    Файл на ресурс надо передать я так понимаю
  4. alexburn
    Offline

    alexburn Модераторы Команда форума Модератор

    Регистрация:
    5 янв 2009
    Сообщения:
    14.735
    Симпатии:
    508
    Баллы:
    204
    Просто с веб-сервисами там другая работа :)
  5. shurikvz
    Offline

    shurikvz Модераторы Команда форума Модератор

    Регистрация:
    1 окт 2009
    Сообщения:
    8.409
    Симпатии:
    316
    Баллы:
    104
    Там кстати 2 в номере порта потерялась. Не 222, а 2222 если верить первому посту.
  6. TopicStarter Overlay
    TODD22
    Offline

    TODD22 Профессионал в 1С Команда форума

    Регистрация:
    23 фев 2009
    Сообщения:
    4.755
    Симпатии:
    146
    Баллы:
    104
    Порт левый как и адрес что бы всякие кулхацкеры не лезли :)

    А так запрос на той стороне получают. И параметры авторизации(логин и пароль) то же получают. А вот xml файл почему то только кусок заголовка.
  7. alexburn
    Offline

    alexburn Модераторы Команда форума Модератор

    Регистрация:
    5 янв 2009
    Сообщения:
    14.735
    Симпатии:
    508
    Баллы:
    204
    Может у них со скриптом что? Может кодировка ?
  8. TopicStarter Overlay
    TODD22
    Offline

    TODD22 Профессионал в 1С Команда форума

    Регистрация:
    23 фев 2009
    Сообщения:
    4.755
    Симпатии:
    146
    Баллы:
    104
    Я вот уже не знаю что и думать.... :(
  9. shurikvz
    Offline

    shurikvz Модераторы Команда форума Модератор

    Регистрация:
    1 окт 2009
    Сообщения:
    8.409
    Симпатии:
    316
    Баллы:
    104
    Тод, а что думать?
    На сервис документация есть? Взять ее и посмотреть. Это то с чего надо начинать.
    Там должен быть расписан порядок. Запрос такого-то вида. Передаем то-то и то-то. В ответ получаем это.
    Если нет ни документации, ни с той стороны никто не может объяснить что надо передавать и в каком виде - так долго гадать можно.
  10. TopicStarter Overlay
    TODD22
    Offline

    TODD22 Профессионал в 1С Команда форума

    Регистрация:
    23 фев 2009
    Сообщения:
    4.755
    Симпатии:
    146
    Баллы:
    104
    Я могу спросить у разработчика сервиса. То есть данный сервис ещё в разработке. Но я даже не знаю что спросить.
    Из документации:
    SetBillingStatus, пример:
    _ttp://95.181.35.555:222/main?func=setbillingstatus&auth_login=login&auth_pass=test
    Передача на сервер лицензий состояния биллинга с 1C.
    На данный момент ожидает в параметрах тело xml-документа в POST под именем xml.

    Он от меня запросы видит, получает. Но на его стороне проблема с разбором xml.
    Я для эксперимента скопировал xml из 1Ски и добавил параметр в конец строки подключения &xml= и добавил скопированный текст. Браузером послал запрос. Он его принял и нормально распарсил. А из 1Ски не получается.
  11. shurikvz
    Offline

    shurikvz Модераторы Команда форума Модератор

    Регистрация:
    1 окт 2009
    Сообщения:
    8.409
    Симпатии:
    316
    Баллы:
    104
    ну как "не знаю что спросить".
    Ок - то что надо писать func=setbillingstatus - это откуда узнал? Где это написано?
    то что надо передавать параметры auth_login, auth_pass - откуда узнал?
  12. TopicStarter Overlay
    TODD22
    Offline

    TODD22 Профессионал в 1С Команда форума

    Регистрация:
    23 фев 2009
    Сообщения:
    4.755
    Симпатии:
    146
    Баллы:
    104
    я же выше постом привёл выдержку из документации по API.

    Ещё раз... Если посылаю через браузер запрос с xml файлом то его получают. Не получается его послать из 1С.
    Если я беру пример приведённый выше. Вставляю его в браузер. Добавляю копипастом xml который мне формирует 1Ска и добавляю через параметр в конце запроса то на принимающей стороне его получают.
    А из 1С у меня не получается отправить. Значит метод описанный в документации работает.
    Проблема с отправкой из 1С.
    --- Объединение сообщений, 30 июл 2015 ---
    В строку браузера копирую строку:
    ttp://95.181.35.555:222/main?func=setbillingstatus&auth_login=login&auth_pass=test&xml=<?xml version="1.0"?>
    <root>
    <item inn="9999999999" balans="-5000"/>
    </root>
    Вот в таком виде если отправляю запрос то всё работает. Мой запрос получают. И xml файл обрабатывается.

    Если посылаю из 1С то ничего не получается...
    Соединение работает но парсер падает <?xml version
    Всё дальше он не читает.
  13. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.549
    Симпатии:
    716
    Баллы:
    204
    Ну вот, парсер и прекращает работу на первой кавычке, считая это окончанием передаваемых данных.
    Я предполагаю, что всю строку XML необходимо заключать в кавычки и кавычки внутри строки так же дублировать, либо превращать все кавычки в набор символов вида %20(пробел)
    Говорю ж: возьми хром, и погляди что по факту отправляется в сторону сервиса когда ты запрос отправляешь через браузер.
    Работу через куки, например, ты только так отладить сможешь.
    Последнее редактирование: 30 июл 2015
  14. TopicStarter Overlay
    TODD22
    Offline

    TODD22 Профессионал в 1С Команда форума

    Регистрация:
    23 фев 2009
    Сообщения:
    4.755
    Симпатии:
    146
    Баллы:
    104
    Вот как мне преобразует строку браузер:

    Запросhttp.jpg
    Видимо надо как то заменить на %20 кавычки.
  15. shurikvz
    Offline

    shurikvz Модераторы Команда форума Модератор

    Регистрация:
    1 окт 2009
    Сообщения:
    8.409
    Симпатии:
    316
    Баллы:
    104
    Тод код из 41 работает? Ты можешь спросить на той стороне что у них в $_POST, и $_REQUEST?
  16. TopicStarter Overlay
    TODD22
    Offline

    TODD22 Профессионал в 1С Команда форума

    Регистрация:
    23 фев 2009
    Сообщения:
    4.755
    Симпатии:
    146
    Баллы:
    104
    Только завтра. У нас уже ночь. А так конечно могу.
  17. shurikvz
    Offline

    shurikvz Модераторы Команда форума Модератор

    Регистрация:
    1 окт 2009
    Сообщения:
    8.409
    Симпатии:
    316
    Баллы:
    104
    Номад об этом выше писал уже.
    Это понятно. В таком виде ты передаешь параметр в виде GET запроса.
  18. TopicStarter Overlay
    TODD22
    Offline

    TODD22 Профессионал в 1С Команда форума

    Регистрация:
    23 фев 2009
    Сообщения:
    4.755
    Симпатии:
    146
    Баллы:
    104
    Но меня сервис в таком виде понимает если из браузера. А вот если из 1Ски то не хочет.
  19. shurikvz
    Offline

    shurikvz Модераторы Команда форума Модератор

    Регистрация:
    1 окт 2009
    Сообщения:
    8.409
    Симпатии:
    316
    Баллы:
    104
    Не, ну не то чтобы совсем ничего не возвращает. Кракозябры какие-то.
  20. TopicStarter Overlay
    TODD22
    Offline

    TODD22 Профессионал в 1С Команда форума

    Регистрация:
    23 фев 2009
    Сообщения:
    4.755
    Симпатии:
    146
    Баллы:
    104
    Крокозябры и у меня возвращает :(
    --- Объединение сообщений, 30 июл 2015 ---
    Пытаюсь заменить кавычки на %20
    _ХМЛВзаиморасчеты = СтрЗаменить(ХМЛВзаиморасчеты,"", "%20");
    Не все символы заменяются....
    --- Объединение сообщений, 30 июл 2015 ---
    Вернее вообще не заменяются. Если так:
    _ХМЛВзаиморасчеты = СтрЗаменить(ХМЛВзаиморасчеты," ", "%20");
    То заменяется только часть.
    --- Объединение сообщений, 30 июл 2015 ---
    Вот так получилось
    _ХМЛВзаиморасчеты = СтрЗаменить(ХМЛВзаиморасчеты,Символ(34), "%20");
    --- Объединение сообщений, 30 июл 2015 ---
    Хотя судя по строке в браузере заменять нужно не все символы....
    Последнее редактирование: 30 июл 2015
Похожие темы
  1. Irys
    Ответов:
    8
    Просмотров:
    5.152
  2. Науменко
    Ответов:
    1
    Просмотров:
    864
  3. Bonderos
    Ответов:
    2
    Просмотров:
    2.270
  4. Hatycik
    Ответов:
    33
    Просмотров:
    2.625
Загрузка...

Поделиться этой страницей