迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 > Python >

在 Python 中使用令牌进行 API 调用

作者:迹忆客 最近更新:2023/06/02 浏览次数:

当我们第一次遇到如何在 Python 中调用 API 的问题时,我们的第一个想法是,“什么是 API?”。

API是应用程序编程接口的首字母缩写; 它允许您访问软件的数据而不必访问它。 例如,如果调用加密货币 API,我们将直接在我们的应用程序中访问加密货币价格,而无需访问加密货币网站或应用程序。

当我们在 Python 中调用 API 时,我们可以使用令牌来调用,如果没有令牌,当我们在没有令牌的情况下调用 API 时,API 是不安全的,但是在使用令牌的情况下,它可以用作密码,并且 访问令牌的用户名。

我们将查看这两种情况的示例。


在 Python 中进行不带令牌的 API 调用

要启动,我们需要先安装一个 Python 库来处理这个请求; 在终端内,输入 pip install requests,创建一个新文件并将其命名为 new.py。 然后我们将输入这些代码:

new.py:

import requests
import json

class MakeApiCall:

    def get_data(self, api):
        response = requests.get(f"{api}")
        if response.status_code == 200:
            print("call successful")
            self.formatted_print(response.json())
        else:
            print(
                f"error {response.status_code} in fetching request")

    def get_user_data(self, api, parameters):
        response = requests.get(f"{api}", params=parameters)
        if response.status_code == 200:
            print("data fetch success")
            self.formatted_print(response.json())
        else:
            print(
                f"error {response.status_code} in fetching request")

    def formatted_print(self, obj):
        text = json.dumps(obj, sort_keys=True, indent=4)
        print(text)

    def __init__(self, api):
        parameters = {
            "site": "stackoverflow"
        }
        self.get_user_data(api, parameters)

if __name__ == "__main__":
    api_call = MakeApiCall("https://api.stackexchange.com/2.2/info")

第一个片段处理调用; 一旦调用成功,打印结果,然后在成功获取数据后,打印结果; 否则,它会打印错误,然后它应该打印从 API 获取的数据。

然后最后一行是我们从中获取数据的 API 链接。 单击运行后,稍等片刻,您将在终端中看到获取的数据。

在 Python 中进行不带令牌的 API 调用


在 Python 中使用令牌调用 API

正如我们提到的,使用令牌制作 API 意味着我们与我们尝试访问的 API 建立了安全连接。 我们需要从 pip 安装一些依赖项。

我们首先需要生成一个令牌并为此部署 jwt。 在终端内,键入 pip install jwt。

打开一个新文件,将其命名为 jwt.py 并输入以下代码以生成令牌。

jwt.py:

import jwt
encoded_jwt = jwt.encode({"some": "payload"}, "secret", algorithm="HS256")
print(encoded_jwt)

接下来,我们将安装 requests 来处理 API 调用请求。 我们将在终端内输入 pip install 请求。

然后我们创建一个文件,将其命名为 new.py 并输入以下代码:

new.py:

import requests

BASE_URL = 'https://www.boredapi.com/api/activity'
token = "your jwt token"

headers = {'Authorization': "Bearer {}".format(token)}
auth_response = requests.get(BASE_URL, headers=headers)

print(auth_response.json())

单击运行,您将在终端中看到从 API 中获取的数据。

在 Python 中使用令牌进行 API 调用


总结

理想情况下,当我们想做一个更严肃的项目时,我们应该使用令牌调用 API 以增加保护。 虽然 jwt 提供了一种生成令牌的直接方法,但我们还可以通过其他方式生成令牌。

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

在 Python 中使用请求设置用户代理 User-Agent

发布时间:2023/06/02 浏览次数:175 分类:Python

本文介绍 HTTP 标头用户代理主题以及如何使用 Python 中的请求设置用户代理。 您将了解 HTTP 标头及其在理解用户代理、获取用户代理以及学习使用 Python 中的请求设置用户代理的多种方法方面的

Python 忽略请求中的 SSL 安全证书检查

发布时间:2023/06/02 浏览次数:115 分类:Python

本文将提供多种使用请求禁用安全证书检查的方法。了解 SSL 安全检查背后的原因及其失败的原因 如果程序使用 Python 请求从 SSL 证书已过期的 URL 获取请求,它会引发两个异常。

Python 请求分页

发布时间:2023/06/02 浏览次数:179 分类:Python

在本文中,我们将了解分页以及如何克服 Python 中与分页相关的问题。 读完本文后,我们将能够了解 Python 分页以及如何使用它处理问题。什么是 Python 中的分页

Python 生成器推导

发布时间:2023/06/02 浏览次数:159 分类:Python

在本文中,我们将学习 python 的生成器和生成器推导以及示例。Python 中的生成器:Python 中的生成器是返回可迭代或遍历对象的函数,用于创建一次遍历项目的迭代器。

在 Python 中检查生成器是否为空

发布时间:2023/06/02 浏览次数:139 分类:Python

本文讨论如何在 Python 中检查生成器是否为空。在 Python 中检查生成器是否为空是指检查路径以确保它为空。

在 Python 中使用 PhantomJS

发布时间:2023/06/02 浏览次数:107 分类:Python

这篇 Python 文章将研究 PhantomJS 以及我们如何将它与用于 Python 编程的 Selenium Web 自动化模块一起使用。 我们还将研究为什么它比其他可用的自动化 Web 驱动程序更有用。

Python 查询 DynamoDB

发布时间:2023/06/02 浏览次数:127 分类:Python

本文将讨论如何使用 python 查询 Amazon DynamoDB。 我们还将讨论 Boto3 是什么以及它为什么需要查询 DynamoDB。

Python Crc32 介绍

发布时间:2023/06/02 浏览次数:182 分类:Python

本篇文章将介绍使用 Python 中的 binascii 或 zlib 库计算数据的 crc32。Python CRC32 。CRC32 是数据的校验和,也称为循环冗余校验,用于检查数据的数字传输中存在的错误。

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便