1. Набираем команду codeby webinar. Набираем команду для организации и проведения вебинаров. Подробнее ...

    Скрыть объявление
  2. Требуются разработчики и тестеры для проекта codebyOS. Требования для участия в проекте: Знание принципов работы ОС на базе Linux; Знание Bash; Крайне желательное знание CPP, Python, Lua; Навыки системного администрирования. Подробнее ...

    Скрыть объявление
  3. Получи 30.000 рублей. Для получения денег необходимо принять участие в конкурсе авторов codeby. С условиями и призами можно ознакомиться на этой странице ...

    Внимание! Регистрация авторов на конкурс закрыта.

    Скрыть объявление

Post Запрос 1с 8.2

Тема в разделе "Базы данных и администрирование", создана пользователем SeverBap, 28 мар 2012.

  1. SeverBap

    SeverBap Well-Known Member

    Репутация:
    0
    Регистрация:
    18 сен 2007
    Сообщения:
    451
    Симпатии:
    0
    Добрый день подскажите столкнулся с такой вещью что при реализации метода
    Код:
    Соединение.ОтправитьДляОбработки(ФайлПараметровЗапроса,СокрЛП(ПроектВыборка.СтрокаЗаказы), ФайлВыгрузкиЗаказов, ЗаголовокHTTP)
    Возращает ошибку 302. проверял по адресу все верно... написал альтернативное решение штатке - возращает xml c описание ошибки (пишит что не указаны параметры)
    Вот процедуры альтернативы:
    Код:
    	СтрокаЛогинПароль=СокрЛП(СокрЛП(ДанныеИнтеграции.Логин)+":"+СокрЛП(ДанныеИнтеграции.Пароль));
    ЛогинПароль = Base64Encode(СтрокаЛогинПароль);
    ЛогинПароль = СтрЗаменить(ЛогинПароль,Символы.ПС,"");
    ЛогинПароль = СтрЗаменить(ЛогинПароль,Символы.ВК,"");
    УРЛ = "http://"+СокрЛП(ДанныеИнтеграции.АдресРесурса)+"/admin/orders.xml";
    Результат=ПослатьPOSTЗапрос(УРЛ,ЛогинПароль,ИмяВременногоФайла);
    ТекстДанных= Новый ТекстовыйДокумент;
    РезультатXML=ПолучитьИмяВременногоФайла("xml");
    ТекстДанных.УстановитьТекст(Результат);
    ТекстДанных.Записать(РезультатXML);
    ТекстДанных="";
    ///**************************
    
    Функция ПослатьPOSTЗапрос(УРЛ,ЛогинПароль,ПутьКФайлу)
    HTTP=Новый COMОбъект("WinHttp.WinHttpRequest.5.1");
    HTTP.Open("POST",УРЛ,false);
    HTTP.SetRequestHeader("Content-type", "application/xml");
    HTTP.SetRequestHeader("Authorization","Basic "+Строка(ЛогинПароль));
    ЧтениеТекст = Новый ЧтениеТекста;
    ЧтениеТекст.Открыть(ПутьКФайлу);
    Содержимое = ЧтениеТекст.Прочитать();
    Результат="";
    Попытка
    HTTP.Send(Содержимое);
    HTTP.WaitForResponse();
    Возврат HTTP.ResponseText;
    Исключение
    Возврат "";
    КонецПопытки;
    КонецФункции
    вот незнаю как прописать параметры типа b_date, e_date в адресной строке это типа фильтер: ?b_date=01.01.2011&e_date=31.04.2012
    раньше при формировании штатки прописывал эти параметры так:
    Код:
    			Соединение = Новый HTTPСоединение(СтрокаСоединения);
    Boundary = СтрЗаменить(Строка(Новый УникальныйИдентификатор()), "-", "");			
    
    ФайлПараметровЗапроса= ПолучитьИмяВременногоФайла("txt");
    
    ЗапросHTTP = Новый ЗаписьТекста;
    ЗапросHTTP.Открыть(ФайлПараметровЗапроса);
    
    ЗапросHTTP.ЗаписатьСтроку("--" + Boundary);
    ЗапросHTTP.ЗаписатьСтроку("--" + Boundary);
    ЗапросHTTP.ЗаписатьСтроку("Content-disposition: form-data; name=""b_date""" + Символы.ПС);
    ЗапросHTTP.ЗаписатьСтроку(ДатаНачалаВыгрузки);
    ЗапросHTTP.ЗаписатьСтроку("--" + Boundary);
    
    ЗапросHTTP.ЗаписатьСтроку("--" + Boundary);
    ЗапросHTTP.ЗаписатьСтроку("Content-disposition: form-data; name=""e_date""" + Символы.ПС);
    ЗапросHTTP.ЗаписатьСтроку(ДатаОкончанияВыгрузки);
    ЗапросHTTP.ЗаписатьСтроку("--" + Boundary);
    
    ЗапросHTTP.Закрыть();
    
    ФайлВыгрузкиЗаказов =ПолучитьИмяВременногоФайла("xml");
    
    ФайлЗапросHTTP = Новый Файл(ФайлПараметровЗапроса);
    РазмерФайлаЗапросаHTTP = XMLСтрока(ФайлЗапросHTTP.Размер());
    
    ЗаголовокHTTP = Новый Соответствие(); 
    ЗаголовокHTTP.Вставить("Content-Type", "multipart/form-data; boundary=" + Boundary);
    ЗаголовокHTTP.Вставить("Content-Length", РазмерФайлаЗапросаHTTP);
    как это реализовать (указать параметры)?
     
  2. SeverBap

    SeverBap Well-Known Member

    Репутация:
    0
    Регистрация:
    18 сен 2007
    Сообщения:
    451
    Симпатии:
    0
    такое ощущение что косяк в передаче заголовка в штатке, убрал "ЗаголовокHTTP" который сформирована соответствием:
    Код:
    			ЗаголовокHTTP = Новый Соответствие(); 
    ЗаголовокHTTP.Вставить("Content-Type", "multipart/form-data; boundary=" + Boundary);
    ЗаголовокHTTP.Вставить("Content-Length", РазмерФайлаЗапросаHTTP);
    вернул что не указаны параметры - это уже что-то!!
     
  3. SeverBap

    SeverBap Well-Known Member

    Репутация:
    0
    Регистрация:
    18 сен 2007
    Сообщения:
    451
    Симпатии:
    0
    выяснилось что рубили на хостинге
     
Загрузка...

Поделиться этой страницей