Доброго времени суток!
Так же, пишу обмен 1С с сайтом на базе OWOX
И столкнулся с проблемой корректной отправки HTTPзапросов.
Программисты сайта как-то не охотно идут на контакт.
Хочу спросить, на Ваш взгляд, где у меня ошибка:
Ответ сервера:
Цитата
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>500 Internal Server Error</title>
</head><body>
<h1>Internal Server Error</h1>
<p>Сервер временно недоступен по техническим причинам. Пожалуйста, зайдите позже.</p>
<hr>
{prod SERVER}
</body></html>
Boundary = СтрЗаменить(Константы.ВалютаРегламентированногоУчета.Получить().УникальныйИдентификатор(), "-", "");
//б) Размер файла отправки
РазмерФайлаОтправки = XMLСтрока(ФайлОтправки.Размер());
//2. ФОРМИРУЕМ http-запрос СРЕДСТВАМИ 1С...
//а) заголовки
Заголовки = Новый Соответствие();
Заголовки.Вставить("POST /GOODS/ HTTP/1.1");
Заголовки.Вставить("Connection","Keep-Alive");
Заголовки.Вставить("Content-Type","multipart/form-data; boundary="+Boundary);
Заголовки.Вставить("Accept", "*/*");
Заголовки.Вставить("Authorization",СокрЛП(НастройкаСсылка.ЗаголовкиAuthorization));
Заголовки.Вставить("User-Agent", СокрЛП(НастройкаСсылка.ЗаголовкиUser));
Заголовки.Вставить("Content-Length", РазмерФайлаОтправки);
Заголовки.Вставить("Host",Соединение.Сервер);
ИмяФайлаЗапросHTTP = ПолучитьИмяВременногоФайла();
ЗапросHTTP = Новый ЗаписьТекста;
ЗапросHTTP.Открыть(ИмяФайлаЗапросHTTP, КодировкаТекста.ANSI);
ЗапросHTTP.ЗаписатьСтроку("--"+Boundary + Символы.ВК);
ЗапросHTTP.ЗаписатьСтроку("Content-Disposition: form-data; name=""file""; filename=" + Символ(34) + ФайлОтправки.Имя + Символ(34) + Символы.ВК);
ЗапросHTTP.ЗаписатьСтроку("Content-Type: application/octet-stream" + Символы.ВК);
ЗапросHTTP.ЗаписатьСтроку("Content-Transfer-Encoding: binary" + Символы.ВК);
ЗапросHTTP.ЗаписатьСтроку(Символы.ВК);
ФайлДляПередачи = Новый ТекстовыйДокумент;
ФайлДляПередачи.Прочитать(ФайлОтправки.ПолноеИмя, КодировкаТекста.ANSI);
ТекстСтрока = ФайлДляПередачи.ПолучитьТекст();
СимволыНачало = Найти(ТекстСтрока, "<?xml version=""1.0"" encoding=""UTF-8""?>");
СимволыНачало = Прав(ТекстСтрока, СтрДлина(ТекстСтрока) - СимволыНачало + 1);
ЗапросHTTP.ЗаписатьСтроку(СимволыНачало);
ЗапросHTTP.ЗаписатьСтроку(Символы.ВК);
ЗапросHTTP.ЗаписатьСтроку("--"+Boundary+"--");
ЗапросHTTP.Закрыть();
ОтветСервера = Неопределено;
ИмяФайлаОтвета = ПолучитьИмяВременногоФайла();
//б) сам запрос
Запрос = Новый HTTPЗапрос("/Goods",Заголовки);
Запрос.УстановитьИмяФайлаТела(ИмяФайлаЗапросHTTP);
Попытка
Соединение.ОтправитьДляОбработки(Запрос, ИмяФайлаОтвета);
Исключение
Сообщить(ОписаниеОшибки());
КонецПопытки;
//***************************
Цитата
Тело запроса - файл ИмяФайлаЗапросHTTP:
--8b44649d892311dbaf51c8c4e85d49d2
Content-Disposition: form-data; name="file"; filename="PostGoods.xml"
Content-Type: application/octet-stream
Content-Transfer-Encoding: binary
<?xml version="1.0" encoding="UTF-8"?>
<Goods>
<records>
<record>
<fields>
<title>Stanley</title>
<code>STT1-714</code>
<docket>Stanley test</docket>
<prices>
<record>
<id>3</id>
<title>Opt</title>
<value>2420</value>
</record>
<record>
<id>2</id>
<title>Roznica</title>
<value>2860</value>
</record>
</prices>
<tags>test</tags>
<status>new</status>
</fields>
</record>
</records>
</Goods>
--8b44649d892311dbaf51c8c4e85d49d2