Библиотека запросов - долгое ожидание данных
У меня есть вопрос о библиотеке запросов "Requests". Я не могу заставить это работать хорошо в этой ситуации. Код ниже работает хорошо (используя urllib3):
http = urllib3.PoolManager()
r = http.request(
'GET',
'https://api-live.exante.eu/md/1.0/feed/SVXY.ARCA',
preload_content=False,
headers={
'Authorization': 'Bearer ' + token,
'Accept': 'application/x-json-stream'
}
)
while True:
json_data = json.loads(r.readline())
....
....
Как видите, это API - фид json-stream. Теперь давайте посмотрим с запросами:
url = 'https://api-live.exante.eu/md/1.0/feed/SVXY.ARCA'
headers = {'Accept': 'application/x-json-stream'}
auth = ''
r = requests.get(url, headers=headers, auth = auth, stream=True)
for raw_rsvp in r.iter_lines():
if raw_rsvp:
json_data = json.loads(raw_rsvp)
Код с "urllib3" получает первую строку сразу после http-запроса и отлично работает во время http-сессии. Но код с библиотекой "Запросы" ждет так долго, прежде чем я получу первый объем данных. Кажется, что есть какой-то буфер, и библиотека ждет, пока он не заполнится. Когда частота приема данных высока - "Запросы" дают мне эти данные быстро. Но если сервер отправляет мне 3-5 строк в минуту, я подожду несколько минут, прежде чем получу его через библиотеку "Запросы".
Извините за мой английский. Надеюсь решить проблему.
Спасибо!