使用Python中的requests包用API密钥调用REST API[英] Calling REST API with an API key using the requests package in Python

本文是小编为大家收集整理的关于使用Python中的requests包用API密钥调用REST API的处理/解决方法,可以参考本文帮助大家快速定位并解决问题,中文翻译不准确的可切换到English标签页查看源文。

问题描述

使用请求包来调用以下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)

本文地址:https://www.itbaoku.cn/post/1937872.html

问题描述

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)