2012-03-23 20 views
9

私はPython 3.2でHTTPS経由でサイトに接続したいと考えています。PythonでHTTPSリクエスト

私は

conn = http.client.HTTPSConnection(urlStr, 8443) 
    conn.putrequest('GET', '/') 
    response = conn.getresponse() 
    print(response.read()) 

を試してみましたが、私は誰もが問題が何であるかを知っている

http.client.ResponseNotReady: Request-started 

を取得しますか?

答えて

17

まず何かをダウンロードして特別なHTTPリクエストをしたくない場合は、http.clientの代わりにurllib.requestを使用する必要があります。あなたもrequestメソッドを使用することができputrequest/endheadersへのショートカットとして

import http.client 
conn = http.client.HTTPSConnection('paypal.com', 443) 
conn.putrequest('GET', '/') 
conn.endheaders() # <--- 
r = conn.getresponse() 
print(r.read()) 

、:

import urllib.request 
r = urllib.request.urlopen('https://paypal.com/') 
print(r.read()) 

あなたが本当にhttp.clientを使用する場合は、リクエストヘッダを送信した後、あなたがendheadersを呼び出す必要があります、次のように:

import http.client 
conn = http.client.HTTPSConnection('paypal.com', 443) 
conn.request('GET', '/') # <--- 
r = conn.getresponse() 
print(r.read()) 
1

代わりのputrequestは、使用することができますrequest

conn.request('GET', '/') 
resp = conn.getresponse() 
print(resp.read())