Имя: Пароль:
1C
1С v8
Помогите с методом НТТР.ОтправитьДляОбработки
0 vasmedv
 
11.10.12
10:10
Выполняю процедуру:

 Процедура ТестОтправкиНажатие(Элемент)
       
   Запись=Новый ЗаписьXML;
   ИмяФайла = Формат(ТекущаяДата(),"ДФ=yyyyMMdd")+"CREDITPRICE";
   ПолноеИмяФайла = КаталогXMLФайлов + ИмяФайла +".xml";
       Запись.ОткрытьФайл(ПолноеИмяФайла,"UTF-8");
       Запись.ЗаписатьОбъявлениеXML();
       Запись.ЗаписатьНачалоЭлемента("SMS");
       Запись.ЗаписатьНачалоЭлемента("operations");
       Запись.ЗаписатьНачалоЭлемента("operation");
       Запись.ЗаписатьТекст("CREDITPRICE");
       Запись.ЗаписатьКонецЭлемента();
       Запись.ЗаписатьКонецЭлемента();
       Запись.ЗаписатьНачалоЭлемента("authentification");
       Запись.ЗаписатьНачалоЭлемента("username");
       Запись.ЗаписатьТекст(Логин);
       Запись.ЗаписатьКонецЭлемента();
       Запись.ЗаписатьНачалоЭлемента("password");
       Запись.ЗаписатьТекст(Пароль);
       Запись.ЗаписатьКонецЭлемента();
       Запись.ЗаписатьКонецЭлемента();
       Запись.ЗаписатьКонецЭлемента(); //SMS
       Запись.Закрыть();
           //Подготовка переменных
   Boundary = СтрЗаменить(Строка(Новый УникальныйИдентификатор()), "-", "");
   //Формируем заголовок POST-запроса.
   ЗаголовокHTTP = Новый Соответствие();
   //При необходимости зададим Referer, например таким образом
   СтрокаСоединения = СтрокаСоединенияИнформационнойБазы();
   СерверИсточник =  НСтр(СтрокаСоединения, "Srvr") + НСтр(СтрокаСоединения, "Ref");
   ЗаголовокHTTP.Вставить("Referer", СерверИсточник);
   //Укажем формат данных Content-Type
   ЗаголовокHTTP.Вставить("Content-Type", "multipart/form-data; boundary=" + Boundary);
   //Укажем длину POST-запроса Content-Length
   ФайлОтправки = Новый Файл(ПолноеИмяФайла);
   РазмерФайлаОтправки = XMLСтрока(ФайлОтправки.Размер());
   ЗаголовокHTTP.Вставить("Content-Length", РазмерФайлаОтправки);
   Попытка
       Если ИспользоватьПрокси Тогда
           Прокси = Новый ИнтернетПрокси;
           Прокси.НеИспользоватьПроксиДляЛокальныхАдресов = Истина;
           Прокси.Пароль = ПарольПрокси;
           Прокси.Пользователь = ПользовательПрокси;
           НТТР = Новый HTTPСоединение(Сервер, Порт, , , Прокси);
       Иначе
           НТТР = Новый HTTPСоединение(Сервер, Порт); //("atompark.com",80)
       КонецЕсли;  
   Исключение
       Успешное = Ложь;
       ОписаниеОшибки = "Неправильная инициализация HTTPСоединения";
   КонецПопытки;
       //2. ИмяФайлаОтвета
   ИмяФайлаОтвета  = ИмяФайла+ "answer"+".xml";
   ПолноеИмяФайлаОтвета = КаталогXMLФайлов+ИмяФайлаОтвета;
   //3. отправляем запрос
   АдресСкрипта="/members/sms/xml";
   Попытка                        
       НТТР.ОтправитьДляОбработки(ПолноеИмяФайла, АдресСкрипта, ПолноеИмяФайлаОтвета, ЗаголовокHTTP);
   Исключение
       Успешное = Ложь;
       ОписаниеОшибки = ОписаниеОшибки();
   КонецПопытки;
КонецПроцедуры

все отрабатывает, но в ответ приходит XML файл

<?xml version="1.0" encoding="UTF-8"?>
<RESPONSE>
<status>-2</status>
<credits>0</credits>
</RESPONSE>

а должен

<?xml version="1.0" encoding="UTF-8"?>
<RESPONSE>
<status>0</status>
<price>0.45</price>
</RESPONSE>

Причем я меняю операцию с CREDITPRICE на BALANCE и тд ответ не меняется.

статусы такие
AUTH_FAILED    -1    Неправильный логин и/или пароль
ОК    0    Запрос верный
XML_ERROR    -2    Неправильный формат XML

Кто-нибудь знает как решить проблему?
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший