API 1с7.7 V7HttpReader

Новая тема
Показывать по сообщений
Я думаю, что через Соединение.Send(ФайлЗапроса); вы посылаете на сервер не файл, а содержимое переменной ФайлЗапроса, то есть строчку "КаталогИБ()+"np.xml"", наверное, файл надо считать, залить в строку и отправить и ответ вы получите как строку, которую потом сохраните в файл. По идее, это stream.
Ответили: пост #12 , пост #13
Ответ на пост №11
Thorvardr,получилось, файл пришел полный, только при открытии в браузере ругается на русские символы
Ответ на пост №11
Thorvardr,спасибо, все работает
весь код, может кому пригодиться
   ТекстЗапроса="";
   Текст=СоздатьОбъект("Текст");
   ФайлЗапроса=КаталогИБ()+"np.xml";
   Текст.Открыть(ФайлЗапроса);
   Для стр=1 по Текст.КоличествоСтрок() Цикл
       ТекстЗапроса=ТекстЗапроса+Текст.ПолучитьСтроку(стр);    
   КонецЦикла;
   Соединение = СоздатьОбъект("WinHttp.WinHttpRequest.5.1");
   Соединение.Open("POST","http://api.novaposhta.ua/v2.0/xml/");
   Соединение.Send(ТекстЗапроса);
   Ответ = Соединение.ResponseText();
   //UTF-8
   УТФ = СоздатьОбъект("Adodb.Stream");
   УТФ.Type=2;
   УТФ.Mode=3;
   УТФ.charset="utf-8";
   УТФ.Open();
   УТФ.WriteText(Ответ);
   УТФ.SaveToFile(КаталогИБ()+"np1.xml",2);
   УТФ.Close();
Экзотика всё это, в идеале надо делать через xdto. Но, боюсь, почту эту не сдвинуть раз даже нет возможности на их стороне строчку добавить на правильное формирование заголовка.
А в этом решении я бы ещё добавил таймаут соединения и проверку корректности полученного потока на предмет целостности в смысле xml модели, вдруг там обрыв соединения случится в момент передачи? Если файл относительно маленький, можно в Попытка...Исключение написать залив его в DOM объект (ТекущийЭлементВВидеОбъекта()), если исключение не случится, то данные, скорее всего, корректны и их можно сохранять как файл или обрабатывать.
Ответили: пост #15
Ответ на пост №14
Thorvardr,xml parser битый файл не обработает, поэтому я думаю нет смысла его проверять
Читают тему
(гостей: 1)

Быстрый переход