Имя: Пароль:
1C
1С v8
Отправка файла через HTTP
0 location
 
naïve
26.08.21
12:53
Подскажите, не сталкивался с отправкой на сайт. Как более правильно отправить данные?

    
    ФайлОтправки = Новый Файл(Объект.ПутьКФайлу);

    Хост = "mysite.com";
    SSL = Новый ЗащищенноеСоединениеOpenSSL(Неопределено, Неопределено);        
    Соединение = Новый HTTPСоединение(Хост, 443, Объект.Login, Объект.Pass, , ,SSL);
    
    Заголовки = Новый Соответствие;
    Заголовки.Вставить("Content-Type: text/plain; charset=utf-8");
    Попытка
        HTTPЗапрос = Новый HTTPЗапрос(ФайлОтправки,"/cml/1c_exchange.php?type=catalog&mode=import&filename=prices.xml", Заголовки);
        HTTPОтвет = Соединение.ОтправитьДляОбработки(HTTPЗапрос);
        
        Если HTTPОтвет.КодСостояния <> 201 Тогда
            Сообщить("Не удалось отправить файл, код ответа=" + HTTPОтвет.КодСостояния + " " + HTTPОтвет.ПолучитьТелоКакСтроку(), СтатусСообщения.Важное);
            Возврат;
        КонецЕсли;
        
    Исключение
        Сообщить("Не удалось подключится", СтатусСообщения.Важное);
        Возврат;
        
    КонецПопытки;
1 IvanVlad1
 
26.08.21
14:20
(0)     Запрос = Новый HTTPЗапрос();
    Запрос.АдресРесурса = "/cml/1c_exchange.php?type=catalog&mode=import&filename=prices.xml";
    
    ДвоичныеДанныеФайла = Новый ДвоичныеДанные(Объект.ПутьКФайлу);
    
    Запрос.УстановитьТелоИзДвоичныхДанных(ДвоичныеДанныеФайла );
    HTTPОтвет = Соединение.ОтправитьДляОбработки(Запрос);
2 location
 
naïve
26.08.21
17:15
(1) не приходят файлы
3 Ёпрст
 
26.08.21
17:28
(0)
Новый HTTPЗапрос(<АдресРесурса>, <Заголовки>)
а ты туда непойми что пихаешь
4 location
 
naïve
26.08.21
17:32
(3) пихаю так
        Запрос = Новый HTTPЗапрос();
        Запрос.АдресРесурса = "cml/1c_exchange.php?mode=file&type=catalog&filename=prices.xml";
        
        ДвоичныеДанныеФайла = Новый ДвоичныеДанные(Объект.ПутьКФайлу);
        Запрос.УстановитьТелоИзДвоичныхДанных(ДвоичныеДанныеФайла);
        Запрос.Заголовки = Заголовки;
        HTTPОтвет = Соединение.ОтправитьДляОбработки(Запрос);
5 location
 
naïve
26.08.21
17:33
приходит ответ 200 success но файла нет
6 location
 
naïve
26.08.21
17:34
пробовал по ftp отправлять
FTPСоединение = Новый FTPСоединение(АдресСайта,,Логин,Пароль);
Путь = СтрЗаменить(объект.ПутьКФайлу, "\","/");
FTPСоединение.Записать(Путь,"prices.XML");

таже фигня, файла нет
7 Ёпрст
 
26.08.21
17:36
(5) ну и спроси у владельца сайта в каком виде должен быть запрос с отправкой файла на сайт
8 Ёпрст
 
26.08.21
17:39
ну и по-ходу это изделие на битриксе, там в доке всё есть же с примерами отправки, какой именно post надо отправить
9 location
 
naïve
26.08.21
17:43
(8) нет это обычный сайт
10 location
 
naïve
26.08.21
17:47
(7) вот отвечает сюда запрос mycite.com/cml/1c_exchange.php?mode=file&type=catalog&filename=prices.xml
11 Ёпрст
 
26.08.21
17:50
(10) 1c_exchange.php и обычный сайт ?
:)
12 acht
 
26.08.21
17:57
(10) > вот отвечает сюда запрос
Что тебя просили спросить и что ты спросил-то?
13 Ёпрст
 
26.08.21
18:06
возможно, там надо Base64Строка передавать еще и кодированную, в utf8, например, + всё это г в теле запроса обрамлять какой нить хренью, или разделителями, или явно указывать &file = ....
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший