2016-03-07 38 views
0

我不確定如何按python-requests中的示例按字母順序獲取headers。做括號和標點符號,例如'在請求標題被髮送時生效嗎?如何格式化標題以使用python請求發送

這是我的代碼:

headers = {'oauth_callback': "http://www.website-tm-access.co.nz%2Ftrademe-callback", 
      'oauth_consumer_key' : "5C82CC6BC7C6472154FBC9CAB24A29A2" , 
      'oauth_version': "1.0", 
      'oauth_timestamp': time, #int(time.time()), 
      'oauth_nonce' : nonce, 
      'oauth_signature_method' : "HMAC-SHA1", 
      'oauth_signature' : signature 
      } 


authorization = ', '.join([key + '="' + urllib.parse.quote_plus(str(value)) + '"' for key, value in headers.items()]) 
http_headers = {'Authorization': authorization} 

輸出爲:

{'Authorization': 'oauth_nonce="62942100", oauth_callback="http%3A%2F%2Fwww.website-tm-access.co.nz%252Ftrademe-callback", oauth_consumer_key="5C82CC6BC7C6472154FBC9CAB24A29A2", oauth_version="1.0", oauth_timestamp="1457345962", oauth_signature="b%27o0rNPtba78EQ3ALsg2mX1Y4vIQw%3D%27", oauth_signature_method="HMAC-SHA1"'} 

如示例中記述的輸出:

爲了使授權頭,你只需追加所有以「OAuth」開頭的值爲 。每個值必須是URL編碼的。

Authorization: OAuth oauth_callback="http%3A%2F%2Fwww.website-tm-access.co.nz%2Ftrademe-callback", oauth_consumer_key="C74CD73FDBE37D29BDD21BAB54BC70E422", oauth_version="1.0", oauth_timestamp="1285532322", oauth_nonce="7O3kEe", oauth_signature_method="HMAC-SHA1", oauth_signature="5s3%2Bel078a5AXGi43FBDyfg5yWY%3D" 

回答

0

順序應該沒有關係經過頭時至requests模塊。

你可以這樣做:

headers = {'oauth_callback': "http://www.website-tm-access.co.nz%2Ftrademe-callback", 
      'oauth_consumer_key' : "5C82CC6BC7C6472154FBC9CAB24A29A2" , 
      'oauth_version': "1.0", 
      'oauth_timestamp': int(time.time()), 
      'oauth_nonce' : nonce, 
      'oauth_signature_method' : "HMAC-SHA1", 
      'oauth_signature' : signature 
      } 
r = requests.get(url, headers=headers) 
+0

嘿,我不認爲這會工作,因爲每個值必須被URL編碼。 – musss