问题描述
使用请求包来调用以下RET API的Python代码?我不知道如何通过"apikey"
curl -X POST -u "apikey":"1234abcd" -H "Accept: application/json" -F "file=@{input_file}" https://api_url
谢谢你的帮助.
推荐答案
您的curl命令就像代码.当您不知道它支持的内容时,您可以curl --help或使用curl ... --trace-ascii 1.txt来弄清楚该过程.
from requests.auth import HTTPBasicAuth import requests url = 'https://api_url' headers = {'Accept': 'application/json'} auth = HTTPBasicAuth('apikey', '1234abcd') files = {'file': open('filename', 'rb')} req = requests.get(url, headers=headers, auth=auth, files=files)
其他推荐答案
有两种方法可以这样做:
选项1
import base64 import requests method = "get" url = "https://xxxxx" auth_string = f"{apiKey}:{secret}" auth_string = auth_string.encode("ascii") auth_string = base64.b64encode(auth_string) headers = { 'Accept': 'application/json', 'Authorization' : f"Basic {auth_string.decode('ascii')}" } rsp = requests.request(method, url, headers=headers, auth=None)
选项2
import requests from requests.auth import HTTPBasicAuth method = "get" url = "https://xxxxx" auth = HTTPBasicAuth(apiKey, secret) rsp = requests.request(method, url, headers=None, auth=auth)
其他推荐答案
一切都被作为标题传递,所以你的标题看起来像这样:
self.headers = { 'Content-type': 'application/json', 'Authorization': f'ApiKey {self.passwd}', }
,您的实际请求可以如下所示:
requests.get(url, auth=None, headers=self.headers)
问题描述
What should the python code to call the REST API below using the requests package? I do not know how to pass the "apikey"
curl -X POST -u "apikey":"1234abcd" -H "Accept: application/json" -F "file=@{input_file}" https://api_url
Thank you for your help.
推荐答案
Your curl command is like code. When you do not know what it supports, you can curl --help or use curl ... --trace-ascii 1.txt to figure out the process.
from requests.auth import HTTPBasicAuth import requests url = 'https://api_url' headers = {'Accept': 'application/json'} auth = HTTPBasicAuth('apikey', '1234abcd') files = {'file': open('filename', 'rb')} req = requests.get(url, headers=headers, auth=auth, files=files)
其他推荐答案
There are two ways to do this:
Option 1
import base64 import requests method = "get" url = "https://xxxxx" auth_string = f"{apiKey}:{secret}" auth_string = auth_string.encode("ascii") auth_string = base64.b64encode(auth_string) headers = { 'Accept': 'application/json', 'Authorization' : f"Basic {auth_string.decode('ascii')}" } rsp = requests.request(method, url, headers=headers, auth=None)
Option 2
import requests from requests.auth import HTTPBasicAuth method = "get" url = "https://xxxxx" auth = HTTPBasicAuth(apiKey, secret) rsp = requests.request(method, url, headers=None, auth=auth)
其他推荐答案
Everything gets passed as headers so your header could look like this:
self.headers = { 'Content-type': 'application/json', 'Authorization': f'ApiKey {self.passwd}', }
And your actual request can look like this:
requests.get(url, auth=None, headers=self.headers)