Найти - Пользователи
Полная версия: Requests (Python 3) и проблемы с отправкой/получением бинарных файлов
Начало » Web » Requests (Python 3) и проблемы с отправкой/получением бинарных файлов
1
saw_tooth
Всем добрый день.
Вожусь с автоматизацией REST API сервера.

На данный момент не могу принять картинку *.jpg в бинарном виде с сервера, при этом загрузить могу.
Проблема заключается в невозможности обработать каким-либо способом, приходящую строку.

Кто что может подсказать?

UPD. C base64 все было отлично, а вот бинари не могу записать в файл.

def downloadphoto(self, path):
l = open('pic.jpg', 'wb')
data = {'request': '{"phone":"+38012345678"}',
'request_name': 'GET_USER_PICTURE',
'request_type': 'HANDLE_FILES',
'requester_info': '{"referrer":"","device_id":"+3596520512229360680","device_phone_number":"+97253541213333"}'}
r = request(self.method, self.url, data=data, headers=self.headers)
source = r.text

print(source)

Дальше по коду, пытался и переводить в байты, и декодировать - все не подходит. в Чем причина может быть? Заранее известно что сервер данные не модифицирует
saw_tooth
Разобрался.
ответ: Читайте ВСЮ документацию, а не только те методы которые нужны.
для вывода бинарного контента есть метод

r.content
vax
Есть второй подход, возможно более правильный для больших файлов
r = requests.get(url, stream=True)
with open(local_filename, 'wb') as f:
    for chunk in r.iter_content(chunk_size=1024): 
        if chunk: # filter out keep-alive new chunks
            f.write(chunk)
    f.flush()
py.user.next
vax
f.flush()
Это не надо. with вызывает закрытие, а закрытие вызывает выталкивание.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB