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

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

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

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

Заголовки покажите
8. maksa2005 531 02.03.21 06:13 Сейчас в теме
(3)так же 200.
Прикрепленные файлы:
9. Zixxx 02.03.21 06:24 Сейчас в теме +1 $m
(8) В фидлере можно проверить в чем разница в передаваемых данных
10. maksa2005 531 02.03.21 06:25 Сейчас в теме
(9)щас попробую разобраться
11. maksa2005 531 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 531 02.03.21 06:57 Сейчас в теме
Оставьте свое сообщение
Вакансии
1С аналитик
Москва
зарплата от 210 000 руб.
Полный день

Руководитель направления 1С
Москва
зарплата от 350 000 руб.
Полный день

1С Программист
Москва
зарплата от 180 000 руб.
Полный день

Программист 1С
Москва
зарплата от 180 000 руб. до 220 000 руб.
Полный день

Аналитик 1С / Бизнес-аналитик
Нижний Новгород
зарплата от 100 000 руб. до 250 000 руб.
Временный (на проект)