2016-09-27 14 views
1

ではないにもかかわらず、私は、単純なHTTPSを作るためにurllib2のを使用していますので、同様に基本認証を要求する: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

はまあ、私は2つに最後の行を分割することによってそれを修正することができました:

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

は一貫して両者の間で前後に反転させることによって、問題を修正/再現することができます。基本的なことを誤解していない限り、これはPython 2.7.3のバグでなければなりません。