2

到目前为止我的代码:

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响应。我认为这是因为发生了一些阻塞?

4

2 回答 2

1

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

r = requests.get(url, auth = ('username', 'password'), prefetch=False)
于 2012-09-13T00:09:50.543 回答
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/的正确方法

于 2012-08-10T17:01:55.280 回答