我是否将日期对象正确发送到请求正文? Python
Am I sending a date object correctly to the request body? Python
我正在通过 python urllib 和 urllib2 库发送 POST 请求。
我能够发送请求,但它忽略了日期 (values)
。
在文档中,它说我需要在请求正文中传递日期对象。下面是我正在使用的代码。
url = 'https://api.kenshoo.com/v2/reports/5233/runs/?ks=105'
values = {'dateRange': {'from':'2015-09-22', 'to':'2015-09-22'}}
data = urllib.urlencode(values)
req = urllib2.Request(url, data)
req.add_header('Content-Type', 'application/json; charset=utf-8')
req.add_header('Content-Length', 0)
response = urllib2.urlopen(req)
根据 API 文档,这是我对日期格式的了解。
"The request body must contain a dates range in YYYY-MM-DD format, i.e.
{"dateRange":{"from":"2014-10-20", "to":"2014-10-22"}}
请求的完整文档可以在这里找到
http://docs.api.kenshoo.com/#!/Reports/runReport
您应该发送 JSON 格式的文档,而不是 urlencoded 数据:
url = 'https://api.kenshoo.com/v2/reports/5233/runs/?ks=105'
values = {'dateRange': {'from':'2015-09-22', 'to':'2015-09-22'}}
req = urllib2.Request(url)
req.add_header('Content-Type', 'application/json')
response = urllib2.urlopen(req, json.dumps(values))
我正在通过 python urllib 和 urllib2 库发送 POST 请求。
我能够发送请求,但它忽略了日期 (values)
。
在文档中,它说我需要在请求正文中传递日期对象。下面是我正在使用的代码。
url = 'https://api.kenshoo.com/v2/reports/5233/runs/?ks=105'
values = {'dateRange': {'from':'2015-09-22', 'to':'2015-09-22'}}
data = urllib.urlencode(values)
req = urllib2.Request(url, data)
req.add_header('Content-Type', 'application/json; charset=utf-8')
req.add_header('Content-Length', 0)
response = urllib2.urlopen(req)
根据 API 文档,这是我对日期格式的了解。
"The request body must contain a dates range in YYYY-MM-DD format, i.e.
{"dateRange":{"from":"2014-10-20", "to":"2014-10-22"}}
请求的完整文档可以在这里找到 http://docs.api.kenshoo.com/#!/Reports/runReport
您应该发送 JSON 格式的文档,而不是 urlencoded 数据:
url = 'https://api.kenshoo.com/v2/reports/5233/runs/?ks=105'
values = {'dateRange': {'from':'2015-09-22', 'to':'2015-09-22'}}
req = urllib2.Request(url)
req.add_header('Content-Type', 'application/json')
response = urllib2.urlopen(req, json.dumps(values))