Python 请求 POST 不包含所有发送的数据
Python requests POST don't contain all sended data
我正在尝试通过他们的 REST api 在 PayU 上创建新订单。我正在发送 "get access token",我有正确的答案。然后我发送 'create new order',aaaa,我收到 103 错误,语法错误。
我正在尝试 https://webhook.site/ ,并意识到为什么语法不好 - 我在列表中没有值。
发送代码POST,创建新订单时:
data = {
"notifyUrl": "https://your.eshop.com/notify",
"customerIp": "127.0.0.1",
"merchantPosId": "00000",
"description": "RTV market",
"currencyCode": "PLN",
"totalAmount": "15000",
"products": [{
"name": "Wireless mouse",
"unitPrice": "15000",
"quantity": "1"}]}
headers = {
"Content-Type": "application/json",
"Authorization": str('Bearer ' + access_token).encode()}
r = requests.post('https://webhook.site/9046f3b6-87c4-4be3-8544-8a3454412a55',
data=payload,
headers=headers)
return JsonResponse(r.json())
Webhooc 显示我发布的内容:
customerIp=127.0.0.1¬ifyUrl=https%3A%2F%2Fyour.eshop.com%2Fnotify¤cyCode=PLN&products=name&products=unitPrice&products=quantity&description=RTV+market&merchantPosId=00000&totalAmount=15000
没有 'name'、'unitprice' 和 'quantity' 的值。 PayU 确认这是唯一的问题。
为什么?怎么了?
发送简单的 POST 获取令牌的请求总是成功的。
如果要发送JSON,请使用post()
的json
参数:
r = requests.post('https://webhook.site/9046f3b6-87c4-4be3-8544-8a3454412a55',
json=payload, # Use the json argument
headers=headers)
否则数据将作为表单编码数据发送,我想这不是您想要的,因为您希望发送嵌套的 products
列表。
当您使用 json
参数时,内容类型会自动设置为 application/json
,因此您不必自己设置。
headers = {
# Content-Type not required
"Authorization": str('Bearer ' + access_token).encode()
}
有关使用请求发送的更多信息 JSON here
我正在尝试通过他们的 REST api 在 PayU 上创建新订单。我正在发送 "get access token",我有正确的答案。然后我发送 'create new order',aaaa,我收到 103 错误,语法错误。
我正在尝试 https://webhook.site/ ,并意识到为什么语法不好 - 我在列表中没有值。
发送代码POST,创建新订单时:
data = {
"notifyUrl": "https://your.eshop.com/notify",
"customerIp": "127.0.0.1",
"merchantPosId": "00000",
"description": "RTV market",
"currencyCode": "PLN",
"totalAmount": "15000",
"products": [{
"name": "Wireless mouse",
"unitPrice": "15000",
"quantity": "1"}]}
headers = {
"Content-Type": "application/json",
"Authorization": str('Bearer ' + access_token).encode()}
r = requests.post('https://webhook.site/9046f3b6-87c4-4be3-8544-8a3454412a55',
data=payload,
headers=headers)
return JsonResponse(r.json())
Webhooc 显示我发布的内容:
customerIp=127.0.0.1¬ifyUrl=https%3A%2F%2Fyour.eshop.com%2Fnotify¤cyCode=PLN&products=name&products=unitPrice&products=quantity&description=RTV+market&merchantPosId=00000&totalAmount=15000
没有 'name'、'unitprice' 和 'quantity' 的值。 PayU 确认这是唯一的问题。
为什么?怎么了?
发送简单的 POST 获取令牌的请求总是成功的。
如果要发送JSON,请使用post()
的json
参数:
r = requests.post('https://webhook.site/9046f3b6-87c4-4be3-8544-8a3454412a55',
json=payload, # Use the json argument
headers=headers)
否则数据将作为表单编码数据发送,我想这不是您想要的,因为您希望发送嵌套的 products
列表。
当您使用 json
参数时,内容类型会自动设置为 application/json
,因此您不必自己设置。
headers = {
# Content-Type not required
"Authorization": str('Bearer ' + access_token).encode()
}
有关使用请求发送的更多信息 JSON here