Post Запрос 1с 8.2

SeverBap

Well-Known Member
18.09.2007
451
0
#1
Добрый день подскажите столкнулся с такой вещью что при реализации метода
Код:
Соединение.ОтправитьДляОбработки(ФайлПараметровЗапроса,СокрЛП(ПроектВыборка.СтрокаЗаказы), ФайлВыгрузкиЗаказов, ЗаголовокHTTP)
Возращает ошибку 302. проверял по адресу все верно... написал альтернативное решение штатке - возращает xml c описание ошибки (пишит что не указаны параметры)
Вот процедуры альтернативы:
Код:
	СтрокаЛогинПароль=СокрЛП(СокрЛП(ДанныеИнтеграции.Логин)+":"+СокрЛП(ДанныеИнтеграции.Пароль));
ЛогинПароль = Base64Encode(СтрокаЛогинПароль);
ЛогинПароль = СтрЗаменить(ЛогинПароль,Символы.ПС,"");
ЛогинПароль = СтрЗаменить(ЛогинПароль,Символы.ВК,"");
УРЛ = "http://"+СокрЛП(ДанныеИнтеграции.АдресРесурса)+"/admin/orders.xml";
Результат=ПослатьPOSTЗапрос(УРЛ,ЛогинПароль,ИмяВременногоФайла);
ТекстДанных= Новый ТекстовыйДокумент;
РезультатXML=ПолучитьИмяВременногоФайла("xml");
ТекстДанных.УстановитьТекст(Результат);
ТекстДанных.Записать(РезультатXML);
ТекстДанных="";
///**************************

Функция ПослатьPOSTЗапрос(УРЛ,ЛогинПароль,ПутьКФайлу)
HTTP=Новый COMОбъект("WinHttp.WinHttpRequest.5.1");
HTTP.Open("POST",УРЛ,false);
HTTP.SetRequestHeader("Content-type", "application/xml");
HTTP.SetRequestHeader("Authorization","Basic "+Строка(ЛогинПароль));
ЧтениеТекст = Новый ЧтениеТекста;
ЧтениеТекст.Открыть(ПутьКФайлу);
Содержимое = ЧтениеТекст.Прочитать();
Результат="";
Попытка
HTTP.Send(Содержимое);
HTTP.WaitForResponse();
Возврат HTTP.ResponseText;
Исключение
Возврат "";
КонецПопытки;
КонецФункции
вот незнаю как прописать параметры типа b_date, e_date в адресной строке это типа фильтер: ?b_date=01.01.2011&e_date=31.04.2012
раньше при формировании штатки прописывал эти параметры так:
Код:
			Соединение = Новый HTTPСоединение(СтрокаСоединения);
Boundary = СтрЗаменить(Строка(Новый УникальныйИдентификатор()), "-", "");			

ФайлПараметровЗапроса= ПолучитьИмяВременногоФайла("txt");

ЗапросHTTP = Новый ЗаписьТекста;
ЗапросHTTP.Открыть(ФайлПараметровЗапроса);

ЗапросHTTP.ЗаписатьСтроку("--" + Boundary);
ЗапросHTTP.ЗаписатьСтроку("--" + Boundary);
ЗапросHTTP.ЗаписатьСтроку("Content-disposition: form-data; name=""b_date""" + Символы.ПС);
ЗапросHTTP.ЗаписатьСтроку(ДатаНачалаВыгрузки);
ЗапросHTTP.ЗаписатьСтроку("--" + Boundary);

ЗапросHTTP.ЗаписатьСтроку("--" + Boundary);
ЗапросHTTP.ЗаписатьСтроку("Content-disposition: form-data; name=""e_date""" + Символы.ПС);
ЗапросHTTP.ЗаписатьСтроку(ДатаОкончанияВыгрузки);
ЗапросHTTP.ЗаписатьСтроку("--" + Boundary);

ЗапросHTTP.Закрыть();

ФайлВыгрузкиЗаказов =ПолучитьИмяВременногоФайла("xml");

ФайлЗапросHTTP = Новый Файл(ФайлПараметровЗапроса);
РазмерФайлаЗапросаHTTP = XMLСтрока(ФайлЗапросHTTP.Размер());

ЗаголовокHTTP = Новый Соответствие(); 
ЗаголовокHTTP.Вставить("Content-Type", "multipart/form-data; boundary=" + Boundary);
ЗаголовокHTTP.Вставить("Content-Length", РазмерФайлаЗапросаHTTP);
как это реализовать (указать параметры)?
 

SeverBap

Well-Known Member
18.09.2007
451
0
#2
такое ощущение что косяк в передаче заголовка в штатке, убрал "ЗаголовокHTTP" который сформирована соответствием:
Код:
			ЗаголовокHTTP = Новый Соответствие(); 
ЗаголовокHTTP.Вставить("Content-Type", "multipart/form-data; boundary=" + Boundary);
ЗаголовокHTTP.Вставить("Content-Length", РазмерФайлаЗапросаHTTP);
вернул что не указаны параметры - это уже что-то!!