API 1с7.7 V7HttpReader
Показывать по
сообщений
- 1
- 2
30.09.2016
15:18
#11
Я думаю, что через Соединение.Send(ФайлЗапроса); вы посылаете на сервер не файл, а содержимое переменной ФайлЗапроса, то есть строчку "КаталогИБ()+"np.xml"", наверное, файл надо считать, залить в строку и отправить и ответ вы получите как строку, которую потом сохраните в файл. По идее, это stream.
30.09.2016
16:05
#12
Ответ на
пост №11
Thorvardr,получилось, файл пришел полный, только при открытии в браузере ругается на русские символы 01.10.2016
00:38
#13
Ответ на
пост №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();
01.10.2016
09:21
#14
Экзотика всё это, в идеале надо делать через xdto. Но, боюсь, почту эту не сдвинуть раз даже нет возможности на их стороне строчку добавить на правильное формирование заголовка.
А в этом решении я бы ещё добавил таймаут соединения и проверку корректности полученного потока на предмет целостности в смысле xml модели, вдруг там обрыв соединения случится в момент передачи? Если файл относительно маленький, можно в Попытка...Исключение написать залив его в DOM объект (ТекущийЭлементВВидеОбъекта()), если исключение не случится, то данные, скорее всего, корректны и их можно сохранять как файл или обрабатывать.
А в этом решении я бы ещё добавил таймаут соединения и проверку корректности полученного потока на предмет целостности в смысле xml модели, вдруг там обрыв соединения случится в момент передачи? Если файл относительно маленький, можно в Попытка...Исключение написать залив его в DOM объект (ТекущийЭлементВВидеОбъекта()), если исключение не случится, то данные, скорее всего, корректны и их можно сохранять как файл или обрабатывать.
Ответили:
пост #15
- 1
- 2
Запретить ввод на основанииПроблемы при синхронизации баз: куда лучше писать для максимально быстрого получения рекомендации
Читают тему
(гостей: 1)