Ошибка post запроса

1. maksa2005 533 01.03.21 21:23 Сейчас в теме
Вот сам запрос
	Данные = Новый Структура;
	Данные.Вставить("secret_key",		"556f8f02e93924c4f39a6852a9_____");
	Данные.Вставить("task_obj",			"2");
	Данные.Вставить("task_message",		"мое служебное сообщение");
	Данные.Вставить("date_plan_end",	"2021-12-12");
	СтрокаJSON = СформироватьСтрокуJSONИзСтруктуры(Данные);
	
	СоединениеHTTP = Новый HTTPСоединение("service.delo-it.ru");	
	
	Заголовоки = Новый Соответствие();
	Заголовоки.Вставить("Content-type", 		"application/json");
	
	ЗапросHTTP = Новый HTTPЗапрос("/modules/AZS/function.php?type=addTask", Заголовоки);         
	
	ЗапросHTTP.УстановитьТелоИзСтроки(Данные, "UTF-8", ИспользованиеByteOrderMark.НеИспользовать);
	Попытка
		HTTPОтвет = СоединениеHTTP.ОтправитьДляОбработки(ЗапросHTTP);
		Сообщить(HTTPОтвет.ПолучитьИмяФайлаТела());		
	Исключение
		HTTPОтвет = Новый Структура;
		Сообщить(ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
	КонецПопытки;

Показать

ответ - пустой

если сделать все то же самое в postman
ответ - есть в js

куда копать не понимаю) подскажите
Прикрепленные файлы:
По теме из базы знаний
Вознаграждение за ответ
Показать полностью
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
4. spacecraft 02.03.21 01:09 Сейчас в теме
(1) на скрине в постмане это данные формы, а не post запрос с json в body. Не так все просто. Ищите информацию, как передавать post запрос используя form-data.
Возможно у сервиса есть API, тогда воспользоваться им.
5. 1395969 62 02.03.21 02:46 Сейчас в теме
Одна из увиденных сразу ошибок: Неверный параметр для процедуры УстановитьТелоИзСтроки
Синтаксис:
УстановитьТелоИзСтроки(<Тело>, <Кодировка>, <ИспользоватьBOM>)
Параметры:
<Тело> (обязательный)
Тип: Строка.
Строка, которая будет записана в тело ответа.

У Вас вместо сроки передается структура


Набросал по Вашему образцу, как должно быть (с комментариями)

HTTPСоединение = Новый HTTPСоединение("service.delo-it.ru",,,,,,Новый  ЗащищенноеСоединениеOpenSSL());

//Создаем запись ЗаписьJSON
ЗаписьJSON = Новый ЗаписьJSON;
//Задаем параметры
ПараметрыJSON = Новый ПараметрыЗаписиJSON(ПереносСтрокJSON.Авто, " ", Истина);
ЗаписьJSON.УстановитьСтроку(ПараметрыJSON);
//Формируем структуру в JSON
JSONQueryStructure = Новый Структура;
JSONQueryStructure.Вставить("secret_key", "556f8f02e93924c4f39a6852a9_____");
JSONQueryStructure.Вставить("task_obj", "2");
JSONQueryStructure.Вставить("task_message", "мое служебное сообщение");
JSONQueryStructure.Вставить("date_plan_end", "2021-12-12");
//Здесь нам платформа переделывает нашу структуру в строку данных в формате JSON 
ЗаписатьJSON(ЗаписьJSON, JSONQueryStructure);
СтрокаJSON = ЗаписьJSON.Закрыть();
//создаем запрос данных методом POST
ЗапросPOST = Новый HTTPЗапрос;
ЗапросPOST.АдресРесурса = "/modules/AZS/function.php?type=addTask";
ЗапросPOST.Заголовки.Вставить("Accept", "application/json");
//Здесь задаем текст нашей отформатированной строки + задаем формат сроки 
ЗапросPOST.УстановитьТелоИзСтроки(СтрокаJSON, КодировкаТекста.UTF8, ИспользованиеByteOrderMark.НеИспользовать);
//Отправляем для обрааботки на наш сервер
Попытка
	ОтветPOST = HTTPСоединение.ОтправитьДляОбработки(ЗапросPOST);
	СтрокаОтветаPOST = ОтветPOST.ПолучитьТелоКакСтроку(КодировкаТекста.ANSI);
	
	//Далее, например, так
	
	Сообщение = Новый СообщениеПользователю();
	Сообщение.Текст = СтрокаОтветаPOST;
	Сообщение.Сообщить();
	
	//Далее - продолжение других возможных действий с ответом от сервера
	
	//Прочитаем полученную строку
	ЧтениеJSONPOST = Новый ЧтениеJSON;
	ЧтениеJSONPOST.УстановитьСтроку(СтрокаОтветаPOST);
	//Пока для отладки Структура = ПрочитатьJSON(ЧтениеJSON);
	СтруктураPOST = ПрочитатьJSON(ЧтениеJSONPOST);
	ЧтениеJSONPOST.Закрыть();
	
Исключение
	Сообщение = Новый СообщениеПользователю();
	Сообщение.Текст = ОписаниеОшибки();
	Сообщение.Сообщить();
КонецПопытки;
Показать
6. maksa2005 533 02.03.21 05:53 Сейчас в теме
(5)
HTTPСоединение = Новый HTTPСоединение("service.delo-it.ru",,,,,,Новый ЗащищенноеСоединениеOpenSSL());

//Создаем запись ЗаписьJSON
ЗаписьJSON = Новый ЗаписьJSON;
//Задаем параметры
ПараметрыJSON = Новый ПараметрыЗаписиJSON(ПереносСтрокJSON.Авто, " ", Истина);
ЗаписьJSON.УстановитьСтроку(ПараметрыJSON);
//Формируем структуру в JSON
JSONQueryStructure = Новый Структура;
JSONQueryStructure.Вставить("secret_key", "556f8f02e93924c4f39a6852a9_____");
JSONQueryStructure.Вставить("task_obj", "2");
JSONQueryStructure.Вставить("task_message", "мое служебное сообщение");
JSONQueryStructure.Вставить("date_plan_end", "2021-12-12");
//Здесь нам платформа переделывает нашу структуру в строку данных в формате JSON
ЗаписатьJSON(ЗаписьJSON, JSONQueryStructure);
СтрокаJSON = ЗаписьJSON.Закрыть();
//создаем запрос данных методом POST
ЗапросPOST = Новый HTTPЗапрос;
ЗапросPOST.АдресРесурса = "/modules/AZS/function.php?type=addTask";
ЗапросPOST.Заголовки.Вставить("Accept", "application/json");
//Здесь задаем текст нашей отформатированной строки + задаем формат сроки
ЗапросPOST.УстановитьТелоИзСтроки(СтрокаJSON, КодировкаТекста.UTF8, ИспользованиеByteOrderMark.НеИспользовать);
//Отправляем для обрааботки на наш сервер
Попытка
ОтветPOST = HTTPСоединение.ОтправитьДляОбработки(ЗапросPOST);
СтрокаОтветаPOST = ОтветPOST.ПолучитьТелоКакСтроку(КодировкаТекста.ANSI);

//Далее, например, так

Сообщение = Новый СообщениеПользователю();
Сообщение.Текст = СтрокаОтветаPOST;
Сообщение.Сообщить();

//Далее - продолжение других возможных действий с ответом от сервера

//Прочитаем полученную строку
ЧтениеJSONPOST = Новый ЧтениеJSON;
ЧтениеJSONPOST.УстановитьСтроку(СтрокаОтветаPOST);
//Пока для отладки Структура = ПрочитатьJSON(ЧтениеJSON);
СтруктураPOST = ПрочитатьJSON(ЧтениеJSONPOST);
ЧтениеJSONPOST.Закрыть();

Исключение
Сообщение = Новый СообщениеПользователю();
Сообщение.Текст = ОписаниеОшибки();
Сообщение.Сообщить();
КонецПопытки;
Показать


Новый ЗащищенноеСоединениеOpenSSL())
я не использую т.к. работаю по 80 порту, а не по 443

если его убрать = суть ответа так же. Ответ пустой
13. 1395969 62 02.03.21 12:55 Сейчас в теме
(6) Выполнил тестовый запрос POST на этот ресурс. Результат - действительно пустой
Проблема не в коде 1С
Прилагаю скриншот. Убедитесь, что этот ресурс умеет обрабатывать этот POST-запрос
Прикрепленные файлы:
14. maksa2005 533 02.03.21 12:57 Сейчас в теме
(13)я уже все сделал. спасибо
2. Степной 27 01.03.21 21:51 Сейчас в теме
(1) Как минимум, даты разные передаете.
7. maksa2005 533 02.03.21 05:54 Сейчас в теме
(2)дело не в дате. хотя я проверил и на правильные даты. толку нет
3. shurikvz 01.03.21 22:31 Сейчас в теме
ответ - пустой

Статус какой? Также 200?

если сделать все то же самое в postman

Заголовки покажите
8. maksa2005 533 02.03.21 06:13 Сейчас в теме
(3)так же 200.
Прикрепленные файлы:
9. Zixxx 02.03.21 06:24 Сейчас в теме +1 $m
(8) В фидлере можно проверить в чем разница в передаваемых данных
10. maksa2005 533 02.03.21 06:25 Сейчас в теме
(9)щас попробую разобраться
11. maksa2005 533 02.03.21 06:51 Сейчас в теме
(9)я понял одно. надо передавать данные в примерно таком варианте
	ИмяФайлаОтправки = КаталогВременныхФайлов() + "post.txt"; 
	Boundary = СтрЗаменить(Строка(Новый УникальныйИдентификатор()), "-", ""); 
	ФайлОтправки = Новый ЗаписьТекста(ИмяФайлаОтправки, КодировкаТекста.ANSI, Символы.ПС, Ложь); 
	ФайлОтправки.ЗаписатьСтроку("--" + Boundary); 
	ФайлОтправки.ЗаписатьСтроку("Content-Disposition: form-data; name=""secret_key"""); 
	ФайлОтправки.ЗаписатьСтроку("");
	ФайлОтправки.ЗаписатьСтроку("556f8f02e93924c4f39a6852a955b___");
	
	ФайлОтправки.ЗаписатьСтроку("--" + Boundary); 
	ФайлОтправки.ЗаписатьСтроку("Content-Disposition: form-data; name=""task_obj"""); 
	ФайлОтправки.ЗаписатьСтроку("");
	ФайлОтправки.ЗаписатьСтроку("2");
	
	ФайлОтправки.ЗаписатьСтроку("--" + Boundary); 
	ФайлОтправки.ЗаписатьСтроку("Content-Disposition: form-data; name=""task_message"""); 
	ФайлОтправки.ЗаписатьСтроку("");
	ФайлОтправки.ЗаписатьСтроку("3");
	
	ФайлОтправки.ЗаписатьСтроку("--" + Boundary); 
	ФайлОтправки.ЗаписатьСтроку("Content-Disposition: form-data; name=""date_plan_end"""); 
	ФайлОтправки.ЗаписатьСтроку("");
	ФайлОтправки.ЗаписатьСтроку("4");
Показать
12. maksa2005 533 02.03.21 06:57 Сейчас в теме
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот