Форум программистов, компьютерный форум, киберфорум
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.96/25: Рейтинг темы: голосов - 25, средняя оценка - 4.96
569 / 169 / 22
Регистрация: 18.10.2012
Сообщений: 912
1
1C 7.x

Отправить xml на веб сервер

17.07.2019, 15:14. Показов 4995. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Доброго времени суток.
проблема с отправкой xml файла на сервер
пытался так:

1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
    //Входные данные
    АдресСервиса = "training.atrucks.su"; //Адрес сервиса, 
    АдресРесурса = "https://training.atrucks.su/api/v3/customer/create_order"; //Адрес по которому располагается ресурс api, 
    ЗаказXML = "C:\Users\Desktop\atrucks-order\trucks_order_ГКД15-МСК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_ГКД15-МСК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);
      
    КонецЕсли;
Возвращается ошибка "HTTP 400 Bad Request" - Неверный запрос
Запрос не может быть понят сервером из-за некорректного синтаксиса.
тут понятно, т.к отправляю сам файл, а нужно запрос

Собственно вопрос, как правильно отправить запрос и файл xml?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
17.07.2019, 15:14
Ответы с готовыми решениями:

Отправить xml файл на сайт
Добрый день. Помогите неучу. Нужно отправить xml файл. А как его отправить вообще не в курсах....

Как отправить на сервер xml запрос с помощью post и получить ответ в xml?
нужно отправить на сервер xml запрос с помощью post и получить ответ в xml, погуглил нашел примеры,...

Как отправить на веб сервер переменную методам POST
Есть PHP файл test.php который печатает переменную(string) test на экране, переданную ему методом...

Сохранить данные формы в XML и отправить на сервер методом POST
Доброго времени суток. Только начал знакомство с технологией, и сразу зашел в тупик. Есть один...

4
Модератор
Эксперт 1С
3784 / 2964 / 589
Регистрация: 10.03.2011
Сообщений: 11,669
Записей в блоге: 1
17.07.2019, 23:58 2
Цитата Сообщение от duh_si Посмотреть сообщение
Собственно вопрос, как правильно отправить запрос
так, как его принимает сервис
0
569 / 169 / 22
Регистрация: 18.10.2012
Сообщений: 912
18.07.2019, 07:24  [ТС] 3
хорошо, тогда вопрос, как поместить файл в тело запроса?
0
569 / 169 / 22
Регистрация: 18.10.2012
Сообщений: 912
03.09.2019, 11:00  [ТС] 4
Доброго времени суток.
с отправкой запроса на сайт разобрался, все отправляет, но только на виндовс 7 и выше.
сейчас проблема с Виндовс ХР
1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Соединение = СоздатьОбъект("MSXML2.xmlHttp");//СоздатьОбъект("WinHttp.WinHttpRequest.5.1");
 
    Соединение.Open("POST",АдресРесурса, 0);
    Соединение.SetRequestHeader("Content-Type","multipart/form-data; boundary="+Boundary);
    Соединение.SetRequestHeader("Connection", "keep-alive");
 
    Попытка
        Соединение.Send(ДляОтправки);
 
        Ответ = Соединение.ResponseText();
        Статус = СокрЛП(Соединение.Status);
        Сообщить(Ответ +" "+ Статус);
        
    Исключение
при попытке отправки
Соединение.Send(ДляОтправки);
валиться с такой ошибкой
Ошибка: msxml3.dll: Системная ошибка: -2146697208.

в чем может быть причина?
0
0 / 0 / 0
Регистрация: 17.01.2018
Сообщений: 2
04.10.2019, 01:47 5
duh_si,
иногда это изза запрета SSL в браузере.

Добавлено через 3 минуты
попробуйте в реестре поправить
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings]
"DisableCachingOfSSLPages"=dword:00000000
0
04.10.2019, 01:47
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
04.10.2019, 01:47
Помогаю со студенческими работами здесь

Клиент должен отправить файл на сервер. Сервер его обработать и отправить клиенту текст
Ребят подскажите как сделать: Клиент должен отправить файл на сервер. Сервер его обработать и...

Как отправить json с клиента на сервер (клиент - прога на C#, сервер - файл PHP)
На хостинге есть файл php, как мне отправить к этому файлу json c помощью C# и как получить его с...

Сервер на сокетах: Нельзя повторно отправить данные на сервер
Делаю сервер на сокетах. Первая отправка данных на сервер проходит успешно, сервер получает и...

XML SOAP PHP 1с(Нужно забрать XML c веб сервиса)
Хелп плиз есть веб сервис раскатанный на 1с ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru