Имя: Пароль:
1C
 
Не работает http запрос
0 SherifSP
 
16.12.19
23:05
Доброй ночи мистяне, столкнулся с задачей выгрузки на сайт файла xml методом post, ниже код, но вопрос в том, что файл ответа приходит пустой и данные на сайте не обновляются, разработчики сайта уверяют, что с их стороны ошибок нет, как проверить правильно ли выгружаются данные?

        АдресСайта = "Fomoco.com";
        Логин = "man_1C";
        Пароль = "МойПароль";

        ЗаписьXML = Новый ЗаписьXML;
    ИмяФайлаЗапроса = КаталогВыгрузки + "\price.xml";
    ИмяФайлаОтвета = ПолучитьИмяВременногоФайла("xml");
    ПараметрыЗаписиXML = Новый ПараметрыЗаписиXML("utf-8", , Ложь);
    
        ЗаписьXML.ОткрытьФайл(ИмяФайлаЗапроса, ПараметрыЗаписиXML);    
    ЗаписьXML.ЗаписатьОбъявлениеXML();    
    ЗаписьXML.ЗаписатьНачалоЭлемента("КоммерческаяИнформация");
    ЗаписьXML.ЗаписатьАтрибут("ДатаФормирования", Формат(ТекущаяДата(),"ДФ=yyyy-MM-dd"));
    ЗаписьXML.ЗаписатьАтрибут("ВерсияСхемы", "2.04");
       ЗаписьXML.ЗаписатьНачалоЭлемента("Товары"); // Начало элемента objects
    ЗаписьXML.ЗаписатьНачалоЭлемента("Товар");
        ЗаписьXML.ЗаписатьАтрибут("Оригинал", "Нет");
    ЗаписьXML.ЗаписатьАтрибут("СрокПоставки", Строка(0));
    ЗаписьXML.ЗаписатьАтрибут("Цена", Строка(817));
    ЗаписьXML.ЗаписатьАтрибут("Производитель", СтрокаТЗ.Brand);
    ЗаписьXML.ЗаписатьАтрибут("ПрефиксКод", СтрокаТЗ.OriginalNomer);
    ЗаписьXML.ЗаписатьАтрибут("Описание", "");
    ЗаписьXML.ЗаписатьАтрибут("Артикул", СтрокаТЗ.Article);
    ЗаписьXML.ЗаписатьАтрибут("КодПоставщика", "268");
    ЗаписьXML.ЗаписатьАтрибут("Название", СтрокаТЗ.Name);
    ЗаписьXML.ЗаписатьАтрибут("Код", СтрокаТЗ.ID);        
    ЗаписьXML.ЗаписатьКонецЭлемента();    
    ЗаписьXML.ЗаписатьКонецЭлемента(); // Конец элемента objects
    ЗаписьXML.ЗаписатьКонецЭлемента();
    ЗаписьXML.Закрыть();

        Запрос = "?action=exchange&type=sale&mode=price";

        HTTPЗапрос = Новый HTTPЗапрос(Запрос);
    Заголовки = Новый Соответствие;
    Заголовки.Вставить("Content-Type", "text/xml");
    HTTPЗапрос.УстановитьИмяФайлаТела(ИмяФайлаЗапроса);
    HTTPЗапрос.Заголовки = Заголовки;
    
    HTTPСоединение = Новый HTTPСоединение(АдресСайта,,Логин,Пароль,,Истина);

    Ответ = HTTPСоединение.ОтправитьДляОбработки(HTTPЗапрос, ИмяФайлаОтвета);

    Если Ответ.КодСостояния = 200 Тогда
        Сообщить("Товары выгрузились успешно");
    Иначе
        Сообщить("Ошибка выгрузки товаров");
    КонецЕсли;
1 Сияющий в темноте
 
16.12.19
23:14
а где чтение файла ответа?
и чего мы так без всяких путей на сервере просто в корень что-то постим да и еще с параметрами
сервер,наверно, бу бу говорит в ответ?
2 SherifSP
 
16.12.19
23:29
а где чтение файла ответа?
Заходил через отладчик смотрел местонахождение в папке темп, открывал и он пустой
3 SherifSP
 
17.12.19
00:30
С сайта приходит файл xml с товаром который не выгружал
4 Fram
 
17.12.19
00:46
вот это странно

Запрос = "?action=exchange&type=sale&mode=price";

обычно в POST запросах все параметры в заголовках или в теле указываются.
а такие query параметры используются в GET запросах

также насчет использования в нужном месте логина и пароля есть сомнения. указание их в HTTPСоединение означает что идет авторизация через операционку, в чем я сильно сомневаюсь. скорее всего, в вашем случае логин и пароль надо в тело или заголовок запроса засовывать. или может вообще использовать отдельный метод для получения токена, и уже токен использовать в самом запросе.
5 SherifSP
 
17.12.19
09:21
(4) С логином и паролем вопросов нет, авторизация проходит успешно, а вот остальное не работает :(
6 SherifSP
 
17.12.19
09:24
7 yavasya
 
17.12.19
09:25
(5) вышли им свой xml и спроси что не так и попроси строку подключения
8 sitex
 
naïve
17.12.19
09:36
(5) Как определил ? cookie возвращаются ?  Да и посмотри через Fiddler заголовки
9 sitex
 
naïve
17.12.19
09:39
И соглашусь с (4) не пахнет тут post запросом
10 SherifSP
 
17.12.19
10:26
(9) есть пример как пост запрос формировать?
11 sitex
 
naïve
17.12.19
10:32
(10) Смотри справку УстановитьТелоИзСтроки , или УстановитьИмяФайлаТела. гугли примеров тьма!