requests.get一直挂着Twitter Api(Python Requests库)

时间:2012-08-10 13:58:29

标签: python json twitter python-requests

到目前为止我的代码:

import requests
import json

url = "https://stream.twitter.com/1/statuses/sample.json"

r = requests.get(url, auth = ('username', 'password'))
print r.status_code

当我在控制台中运行此脚本时,它会一直挂起,但是当我运行等效的urllib2时,我得到了很好的响应:

from urllib2 import *

password_mgr = HTTPPasswordMgrWithDefaultRealm()
url = "https://stream.twitter.com/1/statuses/sample.json"
password_mgr.add_password(None, url, 'username', 'password')
h = HTTPBasicAuthHandler(password_mgr)
opener = build_opener(h)
page = opener.open(url)
print page.getcode()

返回200。任何人都知道问题是什么?

编辑:此外,当我在上面的代码中调整密码时,我得到了相应的401响应。我认为这样做的原因是有一些阻塞?

2 个答案:

答案 0 :(得分:1)

我也有这个问题,它只影响请求版本> 0.13.5。 要修复,请在requests.get调用中禁用预取:

r = requests.get(url, auth = ('username', 'password'), prefetch=False)

答案 1 :(得分:0)

不确定您是否可以按照您的方式调用requests.get。如果传递参数,则需要包含字典。像这样的东西?

auth = {'username': 'username', 'password': 'password'}
r = requests.get("https://stream.twitter.com/1/statuses/sample.json", params=auth)
print r.status_code

请仔细阅读此链接,了解使用requests.get的正确方法 http://docs.python-requests.org/en/latest/user/quickstart/