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

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

  1. TopicStarter Overlay
    TODD22
    Offline

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

    Регистрация:
    23 фев 2009
    Сообщения:
    4.759
    Симпатии:
    147
    Баллы:
    104
    То есть строка которая внутри xml?
  2. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.581
    Симпатии:
    717
    Баллы:
    204
  3. TopicStarter Overlay
    TODD22
    Offline

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

    Регистрация:
    23 фев 2009
    Сообщения:
    4.759
    Симпатии:
    147
    Баллы:
    104
    А почему я её скопировал и вставил как параметр в браузер и у меня всё нормально прошло?
  4. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.581
    Симпатии:
    717
    Баллы:
    204
    Потому что браузер скорее всего выполнил преобразование "налету".
    Возьми Chrome, открой и погляди, что в итоге все же передается на сервер.
  5. TopicStarter Overlay
    TODD22
    Offline

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

    Регистрация:
    23 фев 2009
    Сообщения:
    4.759
    Симпатии:
    147
    Баллы:
    104
    А есть пример как сделать xml файл что бы он был нормальной структуры? А то я что то не догоняю как это загуглить.
    Я взял обычную процедуру формирования xml.
  6. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.581
    Симпатии:
    717
    Баллы:
    204
    Сперва нужно выяснить к какому виду необходимо выполнять преобразование.

    Как минимум можно сделать:
    XMLСтрока = СтрЗаменить(XMLСтрока, """", """"""), т.е. все одинарные кавычки заменяем на двойные.
    А дальше уже смотреть, возможно и
    XMLСтрока = СтрЗаменить(XMLСтрока, " ", %20) потребуется делать.
  7. shurikvz
    Offline

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

    Регистрация:
    1 окт 2009
    Сообщения:
    8.410
    Симпатии:
    316
    Баллы:
    104
    nomad_irk - возможно ты и прав. Но чет сомнения. Как тогда до адресата дошло
    ?

    Разве символ < не запрещен в url? Оно должно было оборваться сразу на нем. И тогда где знак = еще после version? В оригинале xml ведь начинается как <?xml version="1.0" пампарам....
    У меня подозрение просто что вот этот знак = оно могло посчитать как очередной параметр.
    --- Объединение сообщений, 30 июл 2015 ---
    TODD22 кароче - передавай файл post запросом и все.
  8. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.581
    Симпатии:
    717
    Баллы:
    204
    Да просто пока не приходилось именно в виде XML данные на HTTP-сервисы передавать да еще и в виде параметра.
  9. TopicStarter Overlay
    TODD22
    Offline

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

    Регистрация:
    23 фев 2009
    Сообщения:
    4.759
    Симпатии:
    147
    Баллы:
    104
    Я бы и рад :) Как это сделать?
  10. alexburn
    Offline

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

    Регистрация:
    5 янв 2009
    Сообщения:
    14.782
    Симпатии:
    509
    Баллы:
    204
    В СП почитайте:), там и примеры есть:)
    Я бы вам на плюсах прогу такую накатал:cool:
  11. TopicStarter Overlay
    TODD22
    Offline

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

    Регистрация:
    23 фев 2009
    Сообщения:
    4.759
    Симпатии:
    147
    Баллы:
    104
    Мне в 1сах надо :)
    Не догоняю я по СП как тут что нужно делать.


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

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.581
    Симпатии:
    717
    Баллы:
    204
    ОтправитьДляОбработки() - это POST запрос.
  13. alexburn
    Offline

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

    Регистрация:
    5 янв 2009
    Сообщения:
    14.782
    Симпатии:
    509
    Баллы:
    204
    Попытка
    HTTP.ОтправитьДляОбработки(ИмяФайлаЗапроса, АдресРесурса, ИмяФайлаОтвета, Заголовки);
    Вот это и есть отправка запроса.
  14. TopicStarter Overlay
    TODD22
    Offline

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

    Регистрация:
    23 фев 2009
    Сообщения:
    4.759
    Симпатии:
    147
    Баллы:
    104
    Так а как сделать что бы на другой стороне получили то что я отправляю? Я уже и кодировку файла менял с АНСИ на УТФ-8.
    Не знаю что тут ещё не так...
    Запрос приходит что радует. Только не весь..... :(
  15. alexburn
    Offline

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

    Регистрация:
    5 янв 2009
    Сообщения:
    14.782
    Симпатии:
    509
    Баллы:
    204
    Это пусть думают на той стороне, как обрабатывать запросы :)
  16. TopicStarter Overlay
    TODD22
    Offline

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

    Регистрация:
    23 фев 2009
    Сообщения:
    4.759
    Симпатии:
    147
    Баллы:
    104
    Он до них доходит. Но парсер спотыкается на первой же строке.
    Говорят что такой запрос приходит от меня.
  17. alexburn
    Offline

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

    Регистрация:
    5 янв 2009
    Сообщения:
    14.782
    Симпатии:
    509
    Баллы:
    204
    И почему ответ не весь приходит ? Может вы не весь запрос передаете ?
    --- Объединение сообщений, 30 июл 2015 ---
    Вы пытаетесь из 1С сделать парсер:D ? Тяжело это будет сделать :)
  18. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.581
    Симпатии:
    717
    Баллы:
    204
    HTTP = Новый HTTPСоединение(,,,,,,);

    Нужно сделать:
    HTTP = Новый HTTPСоединение(95.181.65.555,2222,,,,,);

    и

    HTTP.ОтправитьДляОбработки(ИмяФайлаЗапроса, "main", ИмяФайлаОтвета, Заголовки);

    К XМЛВзаиморасчеты

    попробуй применить
    СтрЗаменить(XМЛВзаиморасчеты, Символы.ПС, "");
    СтрЗаменить(XМЛВзаиморасчеты, Символы.ВК, "");
    СтрЗаменить(XМЛВзаиморасчеты, Символы.Таб, "");
  19. shurikvz
    Offline

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

    Регистрация:
    1 окт 2009
    Сообщения:
    8.410
    Симпатии:
    316
    Баллы:
    104
    Номад, да там не в этом дело.
    Если запрос POST какая там разница что в теле файла? А если он исполняемый файл захочет передать, тоже что-то заменять? :)
    В #31 посте вообще не то что-то в коде. Так не передается.
    --- Объединение сообщений, 30 июл 2015 ---
    Что такое ХМЛВзаиморасчеты?
    --- Объединение сообщений, 30 июл 2015 ---
    АдресРесурса - вообще ерунда, это что там? что за АдресРесурса = "95.181.65.555:222/main";?
  20. TopicStarter Overlay
    TODD22
    Offline

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

    Регистрация:
    23 фев 2009
    Сообщения:
    4.759
    Симпатии:
    147
    Баллы:
    104
    Это xml строка:
    <?xml version="1.0"?>
    <root>
    <item inn="9999999999" balans="-5000"/>
    </root>
    95.181.65.555:222 это сам адрес.
    Вот так выглядит строка для запроса из браузера. Только у неё есть ещё один параметр xml. В него нужно вложить xml файл. Может параметр должен не xml называться на стороне сервера...?
    95.181.65.555:222/main?func=setbillingstatus&auth_login=login&auth_pass=test
Похожие темы
  1. Irys
    Ответов:
    8
    Просмотров:
    5.157
  2. Науменко
    Ответов:
    1
    Просмотров:
    865
  3. Bonderos
    Ответов:
    2
    Просмотров:
    2.275
  4. Hatycik
    Ответов:
    33
    Просмотров:
    2.640
Загрузка...

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