2012-08-09 136 views
0

我是Python的新手,我一直試圖連接到Twitter的公共數據流,作爲一個實踐項目。這一步我已經得到了:如何在Python中發送身份驗證和HTTP請求?

>>> import urllib2 
>>> url = urllib2.urlopen("https://stream.twitter.com/1/statuses/sample.json") 
Trackback...(omitted) 
urllib2.HTTPError: HTTP Error 401: Unauthorized 

的401錯誤是意料之中的,但我在一個不知如何向前移動。我目前正在閱讀Twitter身份驗證API文檔,他們推薦第三方庫,我可以做但我想避免,因爲我真的想知道發生了什麼。我認爲你必須將OAuth數據放在標題中?我應該使用add_header()嗎?

+0

這似乎是基本的HTTP認證,而不是OAuth的 – 2012-08-09 18:40:00

+0

什麼呢? add_header()?或者你是在談論twitter API,它需要OAuth,而不是基本的。 – 2012-08-09 18:41:35

回答

2

您發佈的鏈接需要HTTP認證:

>>> from urllib2 import * 
>>> password_mgr = HTTPPasswordMgrWithDefaultRealm() 
>>> url = "https://stream.twitter.com/1/statuses/sample.json" 
>>> password_mgr.add_password(None, url, 'USERNAME', 'PASSWORD') 
      #worked with my real twitter credentials^
>>> h = HTTPBasicAuthHandler(password_mgr) 
>>> opener = build_opener(h) 
>>> page = opener.open(url) 
>>> page.getcode() 
200 

this

+0

感謝加比,男孩我覺得愚蠢:) – 2012-08-09 19:02:14

+0

你怎麼能告訴它不需要OAuth? – 2012-08-09 19:03:14

+0

,因爲我去了那個URL,並且收到了一個標準的HTTP認證表單:)別擔心,它發生在我們所有人身上 – 2012-08-09 19:13:54

相關問題