使用Python请求模块创建 API 测试器
先决条件: Python请求模块、API
在本文中,我们将通过创建一个 API 测试器来讨论Python Requests模块的工作过程。
API 代表应用程序编程接口(所有交互的主要参与者)。它就像一个信使,将我们的请求带到系统并通过无缝连接将响应返回给我们。我们在许多情况下使用 API,例如为 Web 应用程序获取数据或连接到远程服务器,该服务器具有不断变化的天气等数据,或者使两个应用程序能够相互交换数据。
requests 库是Python的一个组成部分,用于向指定的 URL 发出 HTTP 请求。无论是 REST API 还是 Web Scrapping,都必须学习请求才能进一步使用这些技术。当一个人向一个 URI 发出请求时,它会返回一个响应。 Python请求提供了用于管理请求和响应的内置功能。
循序渐进的方法:
- 首先,我们从用户那里选择他们想要的输入。
- 获取输入 URL。
如果用户选择GET请求。
- 在getReq()函数中,使用 Requests 模块发出 GET 请求并存储结果。
- 使用 JSON 模块格式化结果并返回。
如果用户选择 Post Request。
- 取一个字典数据发送到服务器。
- 在postReq()函数中,使用 Request 模块使用 JSON 数据发出 POST 请求并存储结果。
- 使用 JSON 模块格式化结果并返回。
最后,打印返回的结果。
下面是基于上述方法的实现:
Python3
# request module to
# work with api's
import requests
# json module to
# parse and get json
import json
# This function are return the
# json response from given url
def getReq(url):
# handle the exceptions
try:
# make a get request using requests
# module and store the result.
res = requests.get(url)
# return the result after
# formatting in json.
return json.dumps(res.json(), indent=4)
except Exception as ee:
return f"Message : {ee}"
# This function are return the
# json response of url and json
# data you send the server
def postReq(url, data):
# handle the exceptions
try:
# make a post request with
# the json data
res = requests.post(url, json=data)
# return the response after
# formatting in json.
return json.dumps(res.json(), indent=4)
except Exception as er:
return f"Message : {er}"
# Driver Code
if __name__ == '__main__':
# always run loop to make
# menu driven program
while True:
# handle the exceptions
try:
choice = int(input("1.Get Request\n2.Post Request\n3.Exit\nEnter Choice : "))
# get user choice and perform tasks.
if choice == 1:
# take a url as a input.
url_inp = input("Enter a valid get url : ")
# print the result of the url.
print(getReq(url_inp))
elif choice == 2:
# take a url as a input
url_inp = input("Enter a valid get url : ")
# take a formal data as input in dictionary.
data_inp = {
"name": input("Name : "),
"email": input("Email : "),
"work": input("Work : "),
"age": input("Age : ")
}
# print the result.
print(postReq(url_inp, data_inp))
elif choice == 3:
# if user want to exit.
exit(0)
except Exception as e:
print("Error : ", e)
输出:
首先,发出get请求
带有查询的 get 请求。
获取所有用户的获取请求。
最后,使用 JSON 数据发出 post 请求。
以下是描述程序功能的完整输出视频