severum
Авг. 4, 2013 19:03:40
Обычно пользуюсь модулем request.
Удобно манипулировать post/get, json, headers = {'Content-type': ‘application/json’, ‘Accept’: ‘text/plain’}, status_code и т.д.
Можно отправлять файлы files = {'datafile': (filename, open(file, ‘rb’))}
Но сейчас требуется отправлять и получать довольно большие файлы. И иметь возможность следить за процессом. Хотя бы считать сколько процентов переслалось.
(Наверное было бы совсем хорошо как докачивать и собирать статистику по ошибкам, но пока не обязательно)
Для получения файла пока попробовал (работает) через urllib.urlretrieve() с reporthook
В request такого нет или я недочитал?
Хочется как-то единообразно все сделать.
Посоветуйте что-нибудь.
Заранее спасибо.
reclosedev
Авг. 5, 2013 17:13:53
severum
И иметь возможность следить за процессом.
http://www.python-requests.org/en/latest/api.html#requests.Response.iter_contentseverum
Наверное было бы совсем хорошо как докачивать
Докачка - это через заголовок Range
headers = {'Range': 'bytes=%s-%s' % (start, end)}
resp = requests.get(url, stream=True, headers=headers)
for chunk in resp.iter_content(1024):
...
Только нужно проверять, поддерживается ли докачка:
download_resuming_supported = 'bytes' in r.headers.get('Accept-Ranges', '')
severum
собирать статистику по ошибкам
http://www.python-requests.org/en/latest/user/quickstart/#errors-and-exceptionsУ requests хорошая документация. Странно, что не нашли.
severum
Авг. 5, 2013 17:51:22
Спасибо большое.
Как-то просмотрел.