post запрос form-data

1. 76 13.01.21 12:31 Сейчас в теме
Подскажите, как правильно написать, то, что на скрине в постмане?

у меня код ниже выдает 404 хотя адрес,
если передавать логин и пароль, как строку Json, то все 0к, но тогда токен не возвращает, нужно имено через form data

	HTTPСоединение 	= Новый HTTPСоединение(ПодлючениеHttp.Адрес,,,,,,ПодлючениеHttp.ЗащищенноеСоединениеOpenSSL);
	
	ЗапросHTTP  = Новый HTTPЗапрос(ПодлючениеHttp.Адрес + ПодлючениеHttp.URLlogin);	
	

	ФайлЗапроса = ПолучитьимяВременногоФайла("txt");
	Boundary = СтрЗаменить(Строка(Новый УникальныйИдентификатор()), "-", "");
	
	ЗаписьТекста = Новый ЗаписьТекста(ФайлЗапроса, КодировкаТекста.UTF8);
	// параметр "login"
	ЗаписьТекста.ЗаписатьСтроку("--"+boundary);
	ЗаписьТекста.ЗаписатьСтроку("Content-Disposition: form-data; name=""login""");
	ЗаписьТекста.ЗаписатьСтроку("");
	ЗаписьТекста.ЗаписатьСтроку(Логин);
	// параметр "password"
	ЗаписьТекста.ЗаписатьСтроку("--"+boundary);
	ЗаписьТекста.ЗаписатьСтроку("Content-Disposition: form-data; name=""password""");
	ЗаписьТекста.ЗаписатьСтроку("");
	ЗаписьТекста.ЗаписатьСтроку(Пароль);
	
	ЗаписьТекста.ЗаписатьСтроку("--"+boundary+"--");
	ЗаписьТекста.Закрыть();
	
	ФайлОтправки = Новый Файл(ФайлЗапроса);
	РазмерФайлаОтправки = XMLСтрока(ФайлОтправки.Размер());
	
	 //передадим данные на сервер 
	ЗаголовокHTTP = Новый Соответствие();
	ЗаголовокHTTP.Вставить("Content-Type", "multipart/form-data, boundary="+boundary);
	ЗаголовокHTTP.Вставить("Content-Lenght", РазмерФайлаОтправки);
	 
	 
    HTTPЗапрос = Новый HTTPЗапрос(ПодлючениеHttp.Адрес + ПодлючениеHttp.URLlogin,ЗаголовокHTTP);
    HTTPЗапрос.УстановитьИмяФайлаТела(ФайлОтправки.ПолноеИмя);    

    HTTPОтвет = HTTPСоединение.ОтправитьДляОбработки(HTTPЗапрос);
	
Ответ =  Новый Структура("Код, Заголовки, Текст", HTTPОтвет.КодСостояния, HTTPОтвет.Заголовки, HTTPОтвет.ПолучитьТелоКакСтроку());
Показать
Прикрепленные файлы:
Вознаграждение за ответ
Показать полностью
Ответы
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
2. login1020 76 14.01.21 00:33 Сейчас в теме +0.5 $m
вроде разобрался

&НаКлиенте
Процедура ОтправитьFormDATA()

        ПодлючениеHttp = ПараметрыПодключенияHttp();
	
	HTTPСоединение 	= Новый 
        HTTPСоединение(ПодлючениеHttp.Адрес,,,,,,ПодлючениеHttp.ЗащищенноеСоединениеOpenSSL);
	
	ЗапросHTTP  = Новый HTTPЗапрос(ПодлючениеHttp.Метод);	
	
	ПоместитьФайлы(ЗапросHTTP);
	
	HTTPОтвет = HTTPСоединение.ОтправитьДляОбработки(ЗапросHTTP);
	
	Ответ =  Новый Структура("Код, Заголовки, Текст", HTTPОтвет.КодСостояния, HTTPОтвет.Заголовки, HTTPОтвет.ПолучитьТелоКакСтроку());

КонецПроцедуры

&НаКлиенте
Процедура ПоместитьФайлы(ЗапросHTTP)

	Разделитель = СтрЗаменить(Новый УникальныйИдентификатор, "-", "");
	РазделительСтрок = Символы.ВК + Символы.ПС;
	
	ИмяФайла = ПолучитьИмяВременногоФайла("txt");
	ТекФайл = Новый ТекстовыйДокумент;
	ТекФайл.Записать(ИмяФайла);
	
	Файл = Новый Файл(ИмяФайла);

	РазмерФайла = Файл.Размер();
	
	БуферДвоичныхДанных = Новый БуферДвоичныхДанных(РазмерФайла);
	
	ФайловыйПоток = Новый ФайловыйПоток(Файл.ПолноеИмя, РежимОткрытияФайла.Открыть);
	ФайловыйПоток.Прочитать(БуферДвоичныхДанных, 0, РазмерФайла);
	ФайловыйПоток.Закрыть();
	
	ПотокТело = Новый ПотокВПамяти();
	ЗаписьДанных = Новый ЗаписьДанных(ПотокТело);
	
	ЗаписьДанных.ЗаписатьСтроку("--" + Разделитель);
	ЗаписьДанных.ЗаписатьСтроку("Content-Disposition: form-data; name=""date""");
	ЗаписьДанных.ЗаписатьСтроку("");
	ЗаписьДанных.ЗаписатьСтроку("11.01.2021");
	ЗаписьДанных.ЗаписатьСтроку("");
	ЗаписьДанных.ЗаписатьСтроку("--" + Разделитель + "--");
	
	РазмерСодержимого = XMLСтрока(ПотокТело.Размер());
	ЗаписьДанных.Закрыть();
	
	ДвоичныеДанныеТело = ПотокТело.ЗакрытьИПолучитьДвоичныеДанные();
	
	ЗапросHTTP.УстановитьТелоИзДвоичныхДанных(ДвоичныеДанныеТело);
	
	ТипКонтента = СтрШаблон("multipart/form-data; boundary=%1", Разделитель);
	
	ЗапросHTTP.Заголовки.Вставить("Content-Type", ТипКонтента);
	ЗапросHTTP.Заголовки.Вставить("Content-length", РазмерСодержимого);
	
КонецПроцедуры
Показать
user1503726; +1 Ответить
Оставьте свое сообщение
Вопросы с вознаграждением