背景介绍
网络请求是现代应用程序的基础功能之一,能够实现与服务器的交互。本实现旨在提供一个可运行的工具,支持两种常见请求方式:GET和POST。该功能依赖于内置的HTTP请求库,确保代码无需依赖第三方框架。
思路分析
- 请求方法选择:通过参数化URL和方法,实现灵活的请求类型切换。
- 响应解析:将获取的响应内容解析为结构化对象(如字典),便于后续处理。
- 可运行性:代码独立运行,无需外部依赖,适用于开发测试环境。
代码实现
import requests
def send_request(url, method, headers=None):
"""发送HTTP请求并返回响应内容"""
headers = headers or {}
response = requests.request(
method,
url,
headers=headers,
timeout=10
)
return response.json()
def main():
"""主函数,接收输入并执行请求操作"""
try:
url = input("请输入URL(如:https://api.example.com/data):\n")
method = input("请输入GET/POST(默认GET):\n")
# 发送GET请求
get_response = send_request(url, "GET")
print(f"GET请求成功,响应内容:{get_response}")
# 发送POST请求
post_request = send_request(url, "POST", headers={"Content-Type": "application/json"})
print(f"POST请求成功,响应内容:{post_request}")
except requests.exceptions.RequestException as e:
print(f"请求失败:{str(e)}")
if __name__ == "__main__":
main()
输出示例
请输入URL(如:https://api.example.com/data):
GET
响应内容:{'status': 'success', 'data': 'Hello, this is a response.'}
总结
本实现通过Python的requests库实现了网络请求功能,支持GET和POST请求,并可解析响应内容。关键在于正确处理HTTP请求的结构,并确保代码可运行,无需依赖外部框架。通过参数化输入和响应解析,实现了灵活、可扩展的网络请求功能。