Доброго времени суток.
проблема с отправкой xml файла на сервер
пытался так:
//Входные данные
АдресСервиса = "training.atrucks.su"; //Адрес сервиса,
АдресРесурса = "https://training.atrucks.su/api/v3/customer/create_order"; //Адрес по которому располагается ресурс api,
ЗаказXML = "C:\Users\Desktop\atrucks-order\trucks_order_200619042.xml"; //Путь к файлу
//создания заказа который необходимо передать
Boundary = "----" + "123e4567-e89b-12d3-a456-426655440000";// УникальныйИдентификатор
ФайлОтправки = СоздатьОбъект("Текст");
// //ФайлОтправки.ДобавитьСтроку(ИмяФайлаОтправки);
//Массив для хранения и формирования файла который будет отправлен
ТекстДляОтправки = "";
ТекстДляОтправки = ТекстДляОтправки + "--"+Boundary+РазделительСтрок;
//Параметр auth_key
ТекстДляОтправки = ТекстДляОтправки + "Content-Disposition: form-data; name=""auth_key""" + РазделительСтрок + РазделительСтрок;
ТекстДляОтправки = ТекстДляОтправки + "I1F2HLcMHXebw9coyR4Bcu33ekez0gUv8Vjia8JvcKpDR" + РазделительСтрок;
ТекстДляОтправки = ТекстДляОтправки + "--"+ Boundary + РазделительСтрок;
ТекстДляОтправки = ТекстДляОтправки + "Content-Disposition: form-data; name=""file""; filename=""trucks_order_200619042.xml""" + РазделительСтрок;
ТекстДляОтправки = ТекстДляОтправки + "Content-Type: application/xml" + РазделительСтрок + РазделительСтрок;
РазобратьФайл=СоздатьОбъект("Текст");
РазобратьФайл.Открыть(ЗаказXML);
Для стр=1 по РазобратьФайл.КоличествоСтрок() Цикл
ТекстДляОтправки = ТекстДляОтправки + РазобратьФайл.ПолучитьСтроку(стр);
КонецЦикла;
ТекстДляОтправки = ТекстДляОтправки + РазделительСтрок;
ТекстДляОтправки = ТекстДляОтправки+"--"+Boundary+"--";
ФайлОтправки.ДобавитьСтроку(ТекстДляОтправки);
ФайлОтправки.Записать(ЗаказXML);
///А дальше тупик с отправкой
Попытка
HTTPxml = СоздатьОбъект("MSXML2.xmlHttp.4.0");
Исключение
Сообщить("Не удалось инициализировать Microsoft XML");
СтатусВозврата(0);
КонецПопытки;
Попытка
HTTPxml.Open("POST","http://training.atrucks.su:443/api/v3/customer/create_order",0);
Исключение
Сообщить("Не удалось подключиться к: ");
Возврат "";
КонецПопытки;
HTTPxml.setRequestHeader("Content-Type", "multipart/form-data; boundary="+Boundary);
HTTPxml.SetRequestHeader("Connection", "keep-alive");
//HTTPxml.setRequestHeader("Content-Length", СтрДлина(ПараметрыПОСТ));
Попытка
HTTPxml.Send(ЗаказXML);
Исключение
Сообщить(ОписаниеОшибки());
КонецПопытки;
ОтветСервера = HTTPxml.responseText;
Если HTTPxml.Status = 200 Тогда
Сообщить(HTTPxml.ResponseText);
Иначе
Сообщить("HTTP " + HTTPxml.Status + " " + HTTPxml.StatusText);
КонецЕсли;
duh_si @ 29.07.19, 10:18
,
Доброго времени суток.
с отправкой запроса на сайт разобрался, все отправляет, но только на виндовс 7 и выше.
сейчас проблема с Виндовс ХР
Соединение = СоздатьОбъект("MSXML2.xmlHttp");//СоздатьОбъект("WinHttp.WinHttpRequest.5.1");
Соединение.Open("POST",АдресРесурса, 0);
Соединение.SetRequestHeader("Content-Type","multipart/form-data; boundary="+Boundary);
Соединение.SetRequestHeader("Connection", "keep-alive");
Попытка
Соединение.Send(ДляОтправки);
Ответ = Соединение.ResponseText();
Статус = СокрЛП(Соединение.Status);
Сообщить(Ответ +" "+ Статус);
Исключение
duh_si, возможно в 7 и выше библиотека версия msxml3.dll более новая.
Pepe @ 05.09.19, 10:48
,
устанавливал 4 парсер , без изменений. а предыдущие версии нужно разрегистрировать?
duh_si, тогда ИМХО проблема в системе. Есть возможность проверить на другой оси?
Возможно не принимает сервер (возвращает ошибку).
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua