8.х Подскажите по POST запросам с 1С

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем Vladius, 19 май 2016.

  1. afinogen
    Offline

    afinogen Опытный в 1С

    Регистрация:
    28 фев 2011
    Сообщения:
    167
    Симпатии:
    0
    Баллы:
    26
    это ПОСТ однозначно потому как в ответ я получаю результат обработки и так в мануале к апи написано , плюс то же самое программист с той стороны утверждает

    стркоа моих параметров имеет вид

    [параметр1]=значениепараметра[параметр2]=значение и т.д.

    \N - да перенос, собственно насколько я вижу он возникает когда я прописываю "&"+Символы.ПС+Моя строка параметров" собственно что логично, не понятно почему

    когда я убираю Символы.ПС то вообще мои параметры не передаются
    --- Объединение сообщений, 4 май 2017 ---
    я вот думаю чт о может тут проблема в том что я изначально пишу
    "/api/[email protected]&short=1" и затем уже свои параметры плюсую, хотя выглядит глупо но мало ли
  2. shurikvz
    Offline

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

    Регистрация:
    1 окт 2009
    Сообщения:
    8.547
    Симпатии:
    344
    Баллы:
    104
    Это само по себе не показатель. На get ты точно также получаешь результат.

    эм... я и спрашиваю конкретно что там написано. Она не должна быть [параметр1]=значениепараметра[параметр2]=значение, а должна быть
    [параметр1]=значениепараметра&[параметр2]=значение

    Т.е. строка запроса должна выглядеть "/api/[email protected]&short=1&параметр1=значение1&параметр2=значение2&параметр3=значение3
  3. afinogen
    Offline

    afinogen Опытный в 1С

    Регистрация:
    28 фев 2011
    Сообщения:
    167
    Симпатии:
    0
    Баллы:
    26
    стоп...мне программист занимающийся написанием апи говорит что он получает 2 параметра...1 - это &short и второй это вся моя строка как один параметр
    двойные скобки для него нужны что бы "разгрызть" мои параметры, потмоу что в строке не только &параметр1=1&Параметр2=2 и т.д. но могут быть вложенные в параметр параметры и типа по этому их двойными скобками выделяют ,а-ля многомерный массив...сча попробую просто тупо скормить ему с амерсандами..может он там что то сам не знает)
    --- Объединение сообщений, 4 май 2017 ---
    но по ходу ваша правда...сейчас дернул другой апи ,где только 1 параметр, что то вернуло...сдается мне вопрос к программистам на "той стороне"
    Последнее редактирование: 4 май 2017
  4. shurikvz
    Offline

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

    Регистрация:
    1 окт 2009
    Сообщения:
    8.547
    Симпатии:
    344
    Баллы:
    104
    Эм. Нет, тогда не заработает через амперсанд.
    то что программист пытается сделать я преблизительно представил, но нужны подробности про двойные скобки нужны - что за двойные скобки?
    Объясняю - классически строка get запроса выглядит
    /api/store?параметр1=значение1&параметр2=значение2&параметр3=значение3&параметр4=значение4

    параметр1=значение1 это [email protected]
    параметр2=значение2 это short=1
    параметр3=значение3 это должно быть ключ (название параметра) = значенние (значениепараметра) никакие переносы не нужны
  5. afinogen
    Offline

    afinogen Опытный в 1С

    Регистрация:
    28 фев 2011
    Сообщения:
    167
    Симпатии:
    0
    Баллы:
    26
    смотрите
    мне нужно передать например связку личные данные клиента ->заказанные товары
    личные данные это у них параметр "questionnaire"
    заказанные товары - "products"
    в свою очередь внутри личных данных есть
    - фио - это тег [last_mame]
    - адрес проживания и т.д. [свой тег]
    а внутри продакт анадлогично теги: марка , цена ит т.д.

    отсюда я должен сформировать строку примерно такого вида

    [questionnaire][last_mame] = вася пупкин[products][name]=смартфон [products][brand]=йота фон[products][price]=10 и т.д.
    и затем всю эту строку передать в качестве 1 параметра)) по словам программиста от туда
    возможно что меред корневыми тегами (questionnaire,products) нужны амперсанды...сча поэксперементирую
  6. shurikvz
    Offline

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

    Регистрация:
    1 окт 2009
    Сообщения:
    8.547
    Симпатии:
    344
    Баллы:
    104
    Тогда не понятно зачем эту всю билеберду совать в строку запроса?
    Не проще ли впихнуть в тело и передать post запросом?

    HTTPЗапрос = Новый HTTPЗапрос("/api/[email protected]&short=1")
    HTTPЗапрос.УстановитьТелоИзСтроки(Моя строка параметров);
    HTTPОтвет = Соединение.ОтправитьДляОбработки(HTTPЗапрос);
    вот так - каков результат?
    программист на своей стороне видит "Моя строка параметров" строку из массива $_POST ?
  7. afinogen
    Offline

    afinogen Опытный в 1С

    Регистрация:
    28 фев 2011
    Сообщения:
    167
    Симпатии:
    0
    Баллы:
    26
    при таком варианте не отработало
  8. shurikvz
    Offline

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

    Регистрация:
    1 окт 2009
    Сообщения:
    8.547
    Симпатии:
    344
    Баллы:
    104
    что возвращает запрос?
  9. afinogen
    Offline

    afinogen Опытный в 1С

    Регистрация:
    28 фев 2011
    Сообщения:
    167
    Симпатии:
    0
    Баллы:
    26
    код ошибки 200 , т.е. как таковое соединение есть, так оно так всегда возвращало, тут все в строке по ходу....заменил в корневых тегах квадратные скобки на амперсанд...вернуло внутреннюю ошибку в апи, так чт о видимсо над ов эту сторону рыть
  10. afinogen
    Offline

    afinogen Опытный в 1С

    Регистрация:
    28 фев 2011
    Сообщения:
    167
    Симпатии:
    0
    Баллы:
    26
    вопрос решен, всем спасибо
  11. Gari_K77
    Offline

    Gari_K77

    Регистрация:
    22 сен 2017
    Сообщения:
    1
    Симпатии:
    0
    Баллы:
    1
    Всем доброго времени суток.
    При отправке post запроса
    Соединение = Новый HTTPСоединение(СерверПриемник,Порт,,,,,Новый ЗащищенноеСоединениеOpenSSL,);
    Соединение.ОтправитьДляОбработки(имяФайлаОтправки, АдресСтраницы, имяВыходногоФайла, Заголовки);

    должны вернуться значения, которые были переданы на http,а в место значений получаю получаю ответ от сервера:

    <head><title>301 Moved Permanently</title></head>
    <body bgcolor="white">
    <center><h1>301 Moved Permanently</h1></center>
    <hr><center>nginx</center>
    </body>
    </html>
  12. shurikvz
    Offline

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

    Регистрация:
    1 окт 2009
    Сообщения:
    8.547
    Симпатии:
    344
    Баллы:
    104
    проверяйте АдресСтраницы. Действительно ли он соответствует тому, куда надо зайти.