API 1с7.7 V7HttpReader

Новая тема
Показывать по сообщений
Здравствуйте, помогите разобраться с V7HttpReader

Процедура НП()
Соединение =  СоздатьОбъект("AddIn.V7HttpReader");
СтрокаПолучения="api.novaposhta.ua/v2.0/xml/";
ФайлЗапроса=КаталогИБ()+"np.xml";
ФайлОтвета=КаталогИБ()+"np1.xml";
Соединение.ОтправитьДляОбработки(СтрокаПолучения,ФайлЗапроса, 1,ФайлОтвета, 1);
КонецПроцедуры

после выполнения этой процедуры получаю обрезанный файл "ФайлОтвета";
в чем может быть косяк?
Ответили: пост #2
Ответ на пост №1
maestro_voln,надо быть отличным экстрасенсом, чтобы по этим данным определить причину.
Ответили: пост #3
Ответ на пост №2
Prikum,каких данных Вам не хватает? я готов предоставить))
На стороне web сервера надо явно длину контента указать. Примерно так:
# в $xml записан XML документ
my $write_bytes = length $xml;
print "Accept-Ranges: bytes\n";
print "Content-Length: $write_bytes\n";
print "Content-type: text/xml\n\n";
print $xml;

или так
Header('Accept-Ranges: bytes');
Header('Content-Length: '.$write_bytes);
Header('Content-Type: text/xml');
вэб сервер не мой, компании ""Новая почта". Может есть другие методы кроме V7HttpReader?
v7plus хочет "правильный" заголовок контента.
Если нет возможности подкрутить алгоритм на стороне "новой почты", я бы попробовал так:
(алгоритм "навскид", без тестирования, но смысл, думаю, должен быть понятен)
HTTPRequest = СоздатьОбъект("WinHttp.WinHttpRequest.5.1");
...
HTTPRequest.Open("GET", СтрокаПолучения+ФайлОтвета);
HTTPRequest.Send();
Если HTTPRequest.Status<>200 Тогда
    тмп=СоздатьОбъект("Текст");
    тмп.ДобавитьСтроку(HTTPRequest.ResponseText);
    тмп.Записать(...);
КонецЕсли;
HTTPRequest=0;
Ответили: пост #7
Ответ на пост №6
Thorvardr,я ранее рассматривал этот способ,а как им отправить файл на сервер?
нужно обязательно отправить файл хмл, в нем содержится запрос, и получить хмл файл с ответом сервера
через "POST", наверное :)
Ответили: пост #10
так я отправлю файл, а мне еще нужно и ответ получить в виде файла а не текста
Ответ на пост №8
Thorvardr,
ФайлЗапроса=КаталогИБ()+"np.xml";    
Соединение = СоздатьОбъект("WinHttp.WinHttpRequest.5.1");
Соединение.Open("POST","http://api.novaposhta.ua/v2.0/xml/");

Соединение.Send(ФайлЗапроса);

Ответ = Соединение.ResponseText();
Сообщить(Ответ);

получаю ответ
<?xml version="1.0" encoding="UTF-8"?>
<root><success>false</success><data/><errors><item>Data is invalid</item></errors><warnings/><info/><messageCodes/><err­orCodes/><warningCodes/><infoCodes/></root>
 
Читают тему
(гостей: 1)

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