2016-09-27 17 views
1

我使用的urllib2使基本身份驗證一個簡單的HTTPS請求,像這樣:urllib2的響應.read()是空的,即使反應並不

req = urllib2.Request("https://myurl") 
req.add_header("Authorization", "Basic {0}".format(auth_token)) 
resp = urllib2.urlopen(req) 
content = json.loads(resp.read()) 

我得到一個200響應,但body始終是一個空字符串,即使我多次呼叫resp.read()。看起來這將是一個服務器問題,但我確認內容長度標頭非零,然後甚至在Fiddler中捕獲請求並驗證響應是非空的,幷包含我期望在那裏的JSON。我試過readlinereadlines,結果相似。如果我故意使用自己的身份驗證令牌,則迴應爲401,所以我認爲這不是問題所在。

任何理論爲什麼這可能是,或提示進一步調試?

回答

0

嗯,我能夠通過拆分最後一行修復它分爲兩個:

resp_body = resp.read() 
content = json.loads(resp.read()) 

可以一致地重現/通過來回翻轉兩者之間解決問題。除非我誤解了基本的東西,否則這必定是Python 2.7.3中的一個錯誤。