簡體   English   中英

使用請求將 CURL 命令轉換為 Python

[英]Converting CURL command to Python with requests

我想使用 Python 中的請求庫來發出 POST 請求。 但是我嘗試使用的 API 使用 curl 來發出請求,但我不知道如何轉換它。

這是 curl 命令:

curl -X POST "https://api/recognize?secret_key=abc" -H  "accept: application/json" -H  "Content-Type: multipart/form-data" -F "image=@/path/to/image.jpg;type=image/jpeg" 

目前我只是使用 URL 而不是圖像本身作為解決方法。

代碼:

params = (
    ('image_url', '2015-BMW-320djpg'),
    ('secret_key', 'abc'),
)

response = requests.post('https://api/recognize_url', params=params)

據我所知,沒有“cURL -> Requests”翻譯器,但是將一個請求(以及類似的請求)翻譯為使用請求模塊應該相當容易。

files = {'image': open('/path/to/image.jpg', 'rb')}
params = {'secret_key': 'abc'}
headers = {'accept': 'application/json'}

response = requests.post(url, files=files, params=params, headers=headers)

同時存在一個轉換器。 看看https://curl.trillworks.com/

我想使用python中的“ requests”庫發出POST請求。 但是我嘗試使用的api使用curl發出請求,我不知道如何轉換它。

這是curl命令

curl -X POST“ https:// api / recognize?secret_key = abc ” -H“接受:application / json” -H“內容類型:multipart / form-data” -F“ image = @ / path / to / image.jpg; type = image / jpeg“

目前,我只是使用url而不是圖像本身來解決。

代碼:

params = (
    ('image_url', '2015-BMW-320djpg'),
    ('secret_key', 'abc'),
)

response = requests.post('https://api/recognize_url', params=params)

首先,將您的命令粘貼到curlconverter.com/python/ 中,它會將其轉換為

import requests

headers = {
    'accept': 'application/json',
}

params = {
    'secret_key': 'abc',
}

files = {
    'image': open('/path/to/image.jpg;type=image/jpeg', 'rb'),
}

response = requests.post('https://api/recognize', params=params, headers=headers, files=files)

然后, 'image': open('/path/to/image.jpg;type=image/jpeg', 'rb'),行是錯誤的,因為;type=image/jpeg不是文件路徑的一部分你的形象。 要更正它,您需要閱讀-F標志的 curl 文檔files=參數的請求文檔(或只是高級用法頁面),以了解您需要將其更改為

files = {
    'image': ('image.jpg', open('/path/to/image.jpg', 'rb'), 'image/jpeg'),
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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