簡體   English   中英

cURL POST 請求不能像 python 請求一樣工作

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM