[英]What is the equivalent curl command for this python requests POST request?
[英]cURL POST request not working as python requests equivalent
我有一個curl
POST 請求,它按預期在終端中返回一個 CSV。 RJMetrcis 文檔中提供了以下格式(請參閱“導出圖形數據”)。 這是 bash 中的 curl 請求:
curl --data-raw "format=csv&includeColumnHeaders=1" -H "X-RJM-API-Key: myapikey" https://api.rjmetrics.com/0.1/figure/12345/export
或者,使用-d
而不是--data-raw
也有效
但是,在之前使用 Python 中的requests
帖子的幫助下復制此內容時,會返回錯誤:
url = "https://api.rjmetrics.com/0.1/figure/12345/export"
payload = "'{\"format\":\"csv&includeColumnHeaders=1\"}'"
headers = {
'X-RJM-API-Key': 'myapikey'
}
response = requests.request("POST", url, headers=headers, params=payload)
response.text
'{"Error":"Invalid Argument: CSV is currently the only supported format for SQL Reports"}'
這是 API 返回的特定錯誤,指示未請求 CSV 格式(當-d
被排除在 bash 命令之外時,會引發相同的錯誤)。 但是,這兩個請求在語法上是相同的。 這里的 Python 問題可能是什么? 是否有傳遞參數的首選方法?
import requests
data = {
'format': 'csv',
'includeColumnHeaders': 1
}
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:81.0) Gecko/20100101 Firefox/81.0',
'X-RJM-API-Key': 'yourapi'
}
def main(url):
r = requests.post(url, data=data, headers=headers)
print(r)
main("https://api.rjmetrics.com/0.1/figure/12345/export")
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.