2015-06-04 252 views
2

您好我正在使用python requests模塊。我的代碼是:python請求400錯誤

import requests 

payload = {'AWSAccessKeyId':'AKIAJHSXAECVML4XJT7NvVLAQ', 
     'Action':'ListOrders', 
     'CreatedAfter':'2015-05-31T18%3A30%3A00Z', 
     'MarketplaceId':'A21TJRUUN4KGV', 
     'SellerId':'A3AZITEDAVC4SLU02M7', 
     'SignatureMethod':'HmacSHA256', 
     'SignatureVersion':2, 
     'Timestamp':'2015-06-03T10%3A13%3A48Z', 
     'Version':'2013-09-01'} 

response = requests.post('https://mws.amazonservices.in/Orders/2013-09-01', params=payload) 

print response.status_code 

這些都是假貨憑證

我得到這個: 我就是我在做什麼擰?

+0

狀態碼由服務器返回(不是由客戶端lib),不是嗎? –

+0

確切的錯誤是* 400客戶端錯誤錯誤請求*。我用了相同憑證的另一種方法。我得到這個錯誤。關於使用python請求,我得到了上面的錯誤 –

+0

你確定請求沒有被髮送到服務器?通常,請求會在其側面出現錯誤時引發錯誤。錯誤看起來像來自服務器對格式錯誤的請求的典型響應 順便說一句,可能你應該使用數據而不是params(如果你必須發送json)。 Params會創建GET參數,但是您嘗試發送POST請求 - 這就是爲什麼我認爲如此 –

回答

3

我發現這個名爲TEMBOO的第三方工具,它爲許多網站提供API SDK,並且在Python中有Amazon AWS的SKD,當我下載它並檢查ListOrders.py的代碼時,我發現下面的代碼使它清楚它預計在ISO 8601日期格式(即2012-01-01)的日期。

super(ListOrdersInputSet, self)._set_input('AWSSecretKeyId', value) 
def set_CreatedAfter(self, value): 
""" 
Set the value of the CreatedAfter input for this Choreo. ((optional, date) A date used for selecting orders created after (or at) a specified time, in ISO 8601 date format (i.e. 2012-01-01). Defaults to today's date if not provided.)