Имя: Пароль:
1C
1С v8
Не записывается ответ c сервера по POST-запросу в файл xml
0 Мурочка
 
15.01.16
14:55
Добрый день! Подскажите, пожалуйста... Отправляю запрос на сервер, ответ приходит(текстовый), но почему-то файл ответа остаётся пустым. Может я чего-то не понимаю, но в функции HTTP.ОтправитьДляОбработки(ФайлЗапроса, Ресурс, ИмяФайлаОтвета, ЗаголовокHTTP); В файл ИмяФайлаОтвета должен записываться ответ в том формате, в котором я задаю ИмяФайлаОтвета = ПолучитьИмяВременногоФайла("xml"); А он остается пустой и в строчке ОбъектXML.Прочитать(); выдаётся ошибка, что файл пустой. И когда я его в temp папке открываю, файл действительно пустой. Что я делаю не так? Запуталась. Код Ниже:

HTTP =  Новый HTTPСоединение(Сервер);
    ФайлЗапроса = ПолучитьИмяВременногоФайла();
    ТекстовыйФайл = Новый ТекстовыйДокумент;
    ТекстовыйФайл.УстановитьТекст("&requestsData=" + Значение));
    ТекстовыйФайл.Записать(ФайлЗапроса, КодировкаТекста.UTF8);
    
    ЗаголовокHTTP = Новый Соответствие();
    ЗаголовокHTTP.Вставить("Content-Type", "application/x-www-form-urlencoded");
    ЗаголовокHTTP.Вставить("Accept-Language", "ru");
    ЗаголовокHTTP.Вставить("Accept-Charset", "utf-8");
    ЗаголовокHTTP.Вставить("Content-Language", "ru");
    ЗаголовокHTTP.Вставить("Content-Charset", "utf-8");

    ИмяФайлаОтвета = ПолучитьИмяВременногоФайла("xml");

    HTTP.ОтправитьДляОбработки(ФайлЗапроса, Ресурс, ИмяФайлаОтвета, ЗаголовокHTTP);
    
    
    ФайлОтвета = Новый Файл(ИмяФайлаОтвета);
    
    Если ФайлОтвета.Существует() Тогда
        
        ТекстОтвета = Новый ТекстовыйДокумент();
        ТекстОтвета.Прочитать(ИмяФайлаОтвета);
        Если ТекстОтвета.КоличествоСтрок()>0 Тогда
            ОтветСервера = ТекстОтвета.ПолучитьТекст();
        Иначе
            СтрокаСообщенияПользователю = СтрокаСообщенияПользователю + Символы.ПС + "Получение данных с сервера: Получен пустой ответ сервера.";     
        КонецЕсли;
        
    Иначе    
        СтрокаСообщенияПользователю = СтрокаСообщенияПользователю + Символы.ПС + "Получение данных с сервера: Ответ сервера не получен.";
    КонецЕсли;

    УдалитьФайлы(ФайлЗапроса);
    
    ОбъектXML = Новый ЧтениеXML;
    
    Попытка
        ОбъектXML.УстановитьСтроку(ОтветСервера);
    Исключение
    КонецПопытки;

    ОчереднойУзелXMLПрочитан = ОбъектXML.Прочитать();
    ОбъектXML.Закрыть();
1 sapphire
 
15.01.16
15:11
(0)ИМХО, запрос к серверу неправильно построен.
2 sapphire
 
15.01.16
15:12
Собственно, ИМХО, файл запроса, видимо и не нужен вовсе.
HTTP.ОтправитьДляОбработки(ФайлЗапроса, Ресурс+"&requestsData=" + Значение, ИмяФайлаОтвета, ЗаголовокHTTP);
3 Мурочка
 
15.01.16
15:13
Спасибо за наводку! А что именно не так? В передаче параметров или ЗаголовокHTTP. Я честно несколькими способами пробовала обратиться, но как-то не получается((
4 Мурочка
 
15.01.16
15:14
А да... сейчас попробую так
5 Мурочка
 
15.01.16
15:21
Неа, не получается так(
6 sapphire
 
15.01.16
15:27
(5) ТекстовыйФайл.УстановитьТекст("requestsData=" + Значение));
7 sapphire
 
15.01.16
15:28
+ (6) Да и что за ресурс, хотя бы что за доменом следует?
8 Мурочка
 
15.01.16
15:36
Ресурс что-то типа этого:
Ресурс = "/index.php?id=1";
9 Мурочка
 
15.01.16
15:46
ну вообщем это обмен с сайтом. "/index.php?id=1" - скрипт, который на запрос возвращает xml-структуру