Библиотека запросов - долгое ожидание данных

У меня есть вопрос о библиотеке запросов "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 строк в минуту, я подожду несколько минут, прежде чем получу его через библиотеку "Запросы".

Извините за мой английский. Надеюсь решить проблему.

Спасибо!

0 ответов

Другие вопросы по тегам