Das Requests-Streaming-Beispiel funktioniert in meiner Umgebung nicht

Ich habe versucht, die Twitter-Streaming-API mit Python Requests zu nutzen.

Da ist eineinfaches Beispiel in der Dokumentation:

import requests
import json

r = requests.post('https://stream.twitter.com/1/statuses/filter.json',
    data={'track': 'requests'}, auth=('username', 'password'))

for line in r.iter_lines():
    if line: # filter out keep-alive new lines
        print json.loads(line)

Wenn ich das ausführe, wird der Aufruf anrequests.post() kehrt nie zurück. Ich habe experimentiert und bewiesen, dass es definitiv eine Verbindung zu Twitter herstellt und Daten von der API empfängt. Anstatt jedoch ein Antwortobjekt zurückzugeben, befindet es sich dort und verbraucht so viele Daten, wie Twitter sendet. Nach dem obigen Code zu urteilen, würde ich erwartenrequests.post() Um ein Antwortobjekt mit einer offenen Verbindung zu Twitter zurückzugeben, konnte ich weiterhin Echtzeitergebnisse erhalten.

(Um zu beweisen, dass Daten empfangen wurden, habe ich mich mit denselben Anmeldeinformationen in einer anderen Shell mit Twitter verbunden, woraufhin Twitter die erste Verbindung geschlossen und der Anruf das Antwortobjekt zurückgegeben hatr.content Attribut enthielt alle gesicherten Daten, die empfangen wurden, als die Verbindung geöffnet war.)

In der Dokumentation werden keine weiteren erforderlichen Schritte erwähntrequests.post zurückzukehren, bevor alle gelieferten Daten verbraucht werden. Andere Leute scheinen ähnlichen Code zu verwenden, ohne auf dieses Problem zu stoßen, z.Hier.

Ich benutze:

Python 2.7Ubuntu 11.04Anfragen 0.14.0

Antworten auf die Frage(2)

Ihre Antwort auf die Frage