Получение файлов по апи

1. user822247 29.10.20 15:58 Сейчас в теме
Здравствуйте

Пробую скачать файл по Апи. Адрес скрипта корректный (Ввожу его в строку браузера и файл скачивается )

В описание метода написано
Метод позволяет скачать файл. При скачивании содержимое файла отдаётся в виде потока, название файла отдаётся в HTTP заголовке Content-Disposition.

В 1с прилетает ответ в виде (см на фото)

Подскажите как такое нужно расшифровывать?
Прикрепленные файлы:
По теме из базы знаний
Найденные решения
8. VladimirB 17 29.10.20 17:07 Сейчас в теме
Процедура КакСохранитьКартинкуСайтаЧерезHttpЗапросНаКлиенте()
 
    // Запрашивать через http можно не только html-страницы,
    // но и другие объекты, доступные нам через http,
    // например, картинки.
 
    // Сохраним на диск и покажем пользователю картинку, которая
    // размещена в интернете по адресу:
    // thumb7.shutterstock.com/display_pic_with_logo/1014806/270790184/
    // stock-photo-summer-holidays-background-sea-background-270790184.jpg
 
    Соединение = Новый HTTPСоединение("thumb7.shutterstock.com", 80);
 
    // Get-запрос к ресурсу на сервере.
    Запрос = Новый HTTPЗапрос("/display_pic_with_logo/1014806/270790184/" +
        "stock-photo-summer-holidays-background-sea-background-270790184.jpg");
    Результат = Соединение.Получить(Запрос);
 
    Сообщить("Нам вернули код " + Результат.КодСостояния);
 
    // Сама картинка - уже в теле ответа, осталось
    // только записать её в файл на диск в виде двоичных данных.
 
    КаталогДляЭкспериментов = КаталогДокументов() + "\helpme1c.ru";
    СоздатьКаталог(КаталогДляЭкспериментов);
    ФайлКартинки = КаталогДляЭкспериментов + "\test.jpg";
 
    // Записываем картинку на диск.
    Результат.ПолучитьТелоКакДвоичныеДанные().Записать(ФайлКартинки);
 
    Сообщить("Сохранили картинку по адресу " + ФайлКартинки);
 
    // Покажем картинку пользователю.
    ЗапуститьПриложение(ФайлКартинки);    
 
КонецПроцедуры
Показать
criptid; user822247; +2 Ответить
9. VictorRGB2 14 29.10.20 17:09 Сейчас в теме
(6) да, что-о я уработался сегодня
не обратил внимания на картинку, что там действительно "картинка" в ответ прилетает

вам надо ответ читать как двоичные данные
например так
ДвоичныеДанныеКартинки = Ответ.ПолучитьТелоКакДвоичныеДанные();


ну а дальше вы уже их можете сохранить как файл, надо только с расширением покопать чтобы в правильном сохранилось
например так
лФайл = "C:\temp\\answer_001.jpg";
ДвоичныеДанныеКартинки.Записать(лФайл);


вот и коллега в (8) тоже про это пишет
и даже с полным примером
user822247; +1 Ответить
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. VictorRGB2 14 29.10.20 16:05 Сейчас в теме
кодировки не совпадают
надо в запросе указать в какой кодировке нужен ответ, если это поддерживается апи
если нет, то принудительно менять кодировку для ответа, сохранив куда-нибудь со сменой кодировки и уже потом читать
7. user822247 29.10.20 16:36 Сейчас в теме
(2)в описании к апи в данном методе можно только указать идЗаказа к которому прикреплен файл его я и указал и в целом вроде адрес коректный получился но надо как то преобразовать ответ в файл.
3. VladimirB 17 29.10.20 16:11 Сейчас в теме
а какой файл должен прийти? фотошопный документ?
5. user822247 29.10.20 16:34 Сейчас в теме
(3)фото в формате jpg. если тот же скрипт вставить в браузере в строку поиска то он скачивает фото
4. VladimirB 17 29.10.20 16:14 Сейчас в теме
JFIF в потоке№ похоже фото какое-то? Сразу поток сохраняй в файл
user822247; +1 Ответить
6. user822247 29.10.20 16:35 Сейчас в теме
(4) да, это фото но как правильно сохранить или преобразовать в файл?.
Можете скинуть какой нибудь пример или ссылку на статью где можно посмотреть
9. VictorRGB2 14 29.10.20 17:09 Сейчас в теме
(6) да, что-о я уработался сегодня
не обратил внимания на картинку, что там действительно "картинка" в ответ прилетает

вам надо ответ читать как двоичные данные
например так
ДвоичныеДанныеКартинки = Ответ.ПолучитьТелоКакДвоичныеДанные();


ну а дальше вы уже их можете сохранить как файл, надо только с расширением покопать чтобы в правильном сохранилось
например так
лФайл = "C:\temp\\answer_001.jpg";
ДвоичныеДанныеКартинки.Записать(лФайл);


вот и коллега в (8) тоже про это пишет
и даже с полным примером
user822247; +1 Ответить
8. VladimirB 17 29.10.20 17:07 Сейчас в теме
Процедура КакСохранитьКартинкуСайтаЧерезHttpЗапросНаКлиенте()
 
    // Запрашивать через http можно не только html-страницы,
    // но и другие объекты, доступные нам через http,
    // например, картинки.
 
    // Сохраним на диск и покажем пользователю картинку, которая
    // размещена в интернете по адресу:
    // thumb7.shutterstock.com/display_pic_with_logo/1014806/270790184/
    // stock-photo-summer-holidays-background-sea-background-270790184.jpg
 
    Соединение = Новый HTTPСоединение("thumb7.shutterstock.com", 80);
 
    // Get-запрос к ресурсу на сервере.
    Запрос = Новый HTTPЗапрос("/display_pic_with_logo/1014806/270790184/" +
        "stock-photo-summer-holidays-background-sea-background-270790184.jpg");
    Результат = Соединение.Получить(Запрос);
 
    Сообщить("Нам вернули код " + Результат.КодСостояния);
 
    // Сама картинка - уже в теле ответа, осталось
    // только записать её в файл на диск в виде двоичных данных.
 
    КаталогДляЭкспериментов = КаталогДокументов() + "\helpme1c.ru";
    СоздатьКаталог(КаталогДляЭкспериментов);
    ФайлКартинки = КаталогДляЭкспериментов + "\test.jpg";
 
    // Записываем картинку на диск.
    Результат.ПолучитьТелоКакДвоичныеДанные().Записать(ФайлКартинки);
 
    Сообщить("Сохранили картинку по адресу " + ФайлКартинки);
 
    // Покажем картинку пользователю.
    ЗапуститьПриложение(ФайлКартинки);    
 
КонецПроцедуры
Показать
criptid; user822247; +2 Ответить
10. user822247 29.10.20 17:39 Сейчас в теме
(8)
Спасибо все получилось)
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот