2015-12-03 2 views
2

Ниже приводится купон кода, который издается: https://stackoverflow.com/a/18043472Зачем нужно использовать поток для загрузки изображения через HTTP GET?

Он использует модуль запросов в python для загрузки изображения.

import requests, shutil 

url = 'http://example.com/img.png' 
response = requests.get(url, stream=True) 
with open('img.png', 'wb') as out_file: 
    shutil.copyfileobj(response.raw, out_file) 
del response 

Два вопроса я думал о:

1) Почему необходимо установить поток = True? (Я тестировал его без этого параметра, и изображение пустым). Понятно, что я не понимаю, что такое потоковый GET-запрос.

2) В чем разница между сырым ответом и ответом? (Почему нужен shutil.copyfileobj, почему я не могу просто написать в файл?)

Спасибо!

ответ

0

Цитата документации:

Если установить поток Истину при создании запроса, запросы не могут освободить соединение обратно в пул, если вы не потребляете все данные или позвоните Response.close.

Подробнее here.

+0

Почему я не могу загрузить изображение без использования потока? В чем разница между его использованием и не использованием? –

+0

Он должен гарантировать, что вы можете получить весь запрашиваемый вами ресурс, но это может привести к неэффективности соединений. – PatNowak

Смежные вопросы