Имя: Пароль:
1C
1C 7.7
v7: HTTP запрос. Не могу отправить файл client.xml. Что здесь не так?
0 niyahs
 
15.09.15
13:43
Попытка
    HTTPxml =  СоздатьОбъект("MSXML2.xmlHttp.4.0");
Исключение    
    Сообщить("Не удалось инициализировать Microsoft XML");
    СтатусВозврата(0);
КонецПопытки;

Попытка
    HTTPxml.Open("POST",Адрес,0);
Исключение  
    Сообщить("Не удалось подключиться к: "+Адрес);
    Возврат "";
КонецПопытки;

HTTPxml.setRequestHeader("Content-Type", "multipart/form-data; boundary=&MULTIPART_BOUNDARY");

//Формирование тела сообщения
ПараметрыПОСТ = "";
ПараметрыПОСТ = ПараметрыПОСТ + "--&MULTIPART_BOUNDARY" + РазделительСтрок;
ПараметрыПОСТ = ПараметрыПОСТ + "Content-Disposition: form-data; name=""@file""; filename="""+КаталогВременныхФайлов()+"client.xml""" + РазделительСтрок;
ПараметрыПОСТ = ПараметрыПОСТ + "Content-Type: multipart/xml" + РазделительСтрок;
ПараметрыПОСТ = ПараметрыПОСТ + РазделительСтрок;
ПараметрыПОСТ = ПараметрыПОСТ + "--&MULTIPART_BOUNDARY--" + РазделительСтрок;
            
//HTTPxml.setRequestHeader("Content-Length", СтрДлина(ПараметрыПОСТ));
    
Попытка
   HTTPxml.Send(ПараметрыПОСТ);
Исключение
    Сообщить(ОписаниеОшибки());        
КонецПопытки;    
        
ОтветСервера = HTTPxml.responseText;

Ответ сервера возвращает: <A><error>null</error><ver>2</ver></A>
1 Serginio1
 
15.09.15
14:28
2 magicSan
 
15.09.15
14:31
о кашерный ПОСТ запрос, с утра ктото скулил не мог параметры с файлом отправить.
3 niyahs
 
15.09.15
14:38
Нужно для ЕАГИСа. Через curl нормально посылает файл.
4 trdm
 
15.09.15
14:41
Астрологи предсказывают неделю веба с 1Сv77....
5 Дык ё
 
15.09.15
14:57
а нафига там MSXML2.xmlHttp, если передается multipart/form-data? используй WinHttp.WinHttpRequest же же
6 Дык ё
 
15.09.15
15:06
ну и да, имя файла ты передал. а сам файл? :)
7 niyahs
 
15.09.15
15:17
Ну так я и указал месторасположение файла.
8 Дык ё
 
15.09.15
15:20
ага. а веб-сервис потом должен его сам по имени из твоего каталога временных файлов прочитать? спасибо, поржал :)
9 niyahs
 
15.09.15
15:22
Как добавить файл? :)
10 niyahs
 
15.09.15
15:23
Закодировать файл?
11 niyahs
 
15.09.15
15:57
Попробовал так, всё равно та же ошибка.

ПараметрыПОСТ = ПараметрыПОСТ + "Content-Disposition: form-data; name=""%%40file""; filename=""client.xml""" + РазделительСтрок;
ПараметрыПОСТ = ПараметрыПОСТ + """40file=@"+КаталогВременныхФайлов() + "client.xml""";
ПараметрыПОСТ = ПараметрыПОСТ + "Content-Type: multipart/form-data" + РазделительСтрок;
ПараметрыПОСТ = ПараметрыПОСТ + РазделительСтрок;
ПараметрыПОСТ = ПараметрыПОСТ + "--&MULTIPART_BOUNDARY--" + РазделительСтрок;
12 Serginio1
 
15.09.15
16:26
(11) Отошли через 1 и посмотри фиддлером. Если что используй
v8: v8: Использование сборок .NET в 1С 7.x и 8.x
13 Дык ё
 
15.09.15
16:40
14 niyahs
 
16.09.15
10:25
Отсылал через 1с, фиддлер не улавливает.
15 niyahs
 
16.09.15
11:19
Спасибо, тема закрыта.
16 Serginio1
 
16.09.15
12:40
И как решил?
17 niyahs
 
16.09.15
14:02
Через MSXML2.xmlHttp. Я до этого пробовал как здесь https://ru.wikipedia.org/wiki/Multipart/form-data через кодирование, единственно что не добавил последнюю пустую строку. Не внимательность.