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 に答える