Good day to all. I can’t figure out how to send a POST request to a script on a website in json format from 1C.

In php script just

var_dump($_POST); var_dump($_GET); 

In 1s

  тЗаписьJSON = Новый ЗаписьJSON; тПараметрыJSON = Новый ПараметрыЗаписиJSON(ПереносСтрокJSON.Нет, " ", Истина); тЗаписьJSON.УстановитьСтроку(тПараметрыJSON); массивЧегото = Новый Массив; сЗаказы = Новый Структура; тДанные = Новый Структура; тДанные.Вставить("ЧислоJSON", 100); тДанные.Вставить("СтрокаJSON", "test"); массивЧегото.Добавить(тДанные); тДанные = Новый Структура; тДанные.Вставить("ЧислоJSON", 101); тДанные.Вставить("СтрокаJSON", "test1"); массивЧегото.Добавить(тДанные); сЗаказы.Вставить("xxx", массивЧегото); ЗаписатьJSON(тЗаписьJSON, сЗаказы); strJSON = тЗаписьJSON.Закрыть(); Соединение = Новый HTTPСоединение(ИмяСайта); HTTPЗапрос = Новый HTTPЗапрос(ИмяСкрипта); HTTPЗапрос.Заголовки.Вставить("Content-type", "application/json"); HTTPЗапрос.УстановитьТелоИзСтроки(strJSON,КодировкаТекста.UTF8,ИспользованиеByteOrderMark.НеИспользовать); ИмяФайлаОтвета = ПолучитьИмяВременногоФайла("txt"); Соединение.ОтправитьДляОбработки(HTTPЗапрос, ИмяФайлаОтвета); ФайлОтвета = Новый Файл(ИмяФайлаОтвета); 

At the output in the answer file I have

 array(0) { } array(0) { } 

What am I doing wrong?

  • 2
    тДанные.Вставить what kind of tin is your 1C) - tCode
  • I agree. Himself in shock - Varfalamey Isoldin

1 answer 1

In general, the problem as such was not - there was just ignorance and misunderstanding of HTTP headers. For starters not

 HTTPЗапрос.Заголовки.Вставить("Content-type", "application/json"); 

BUT

 HTTPЗапрос.Заголовки.Вставить("Content-type", "application/x-www-form-urlencoded;charset=utf-8"); 

Secondly not

 HTTPЗапрос.УстановитьТелоИзСтроки(strJSON, 

BUT

 HTTPЗапрос.УстановитьТелоИзСтроки("motherFuckerData="strJSON,