项目结构
http_api_client/ ├── main.py ├── requirements.txt └── README.md
1/requirements.txt文件
首先,我们需要在requirements.txt文件中列出项目所需的依赖项:
2/README.md
# 然后,我们可以编写一个简单的README.md文件来描述这个项目:
# HTTP API Client
# 这是一个简单的Python项目,用于调用HTTP类型的接口。
# 使用方法
1. 安装依赖项:
```sh
pip install -r requirements.txt
```
2. 运行主程序:
```sh
python main.py
```
3. 查看输出结果。
3/main.py
接下来是主程序文件`main.py`,它包含调用HTTP接口的代码:
import requests
def call_http_api(url, method='GET', headers=None, params=None, data=None, json_data=None):
"""
调用HTTP API的函数。
:param url: API的URL地址
:param method: HTTP请求方法,默认为'GET'
:param headers: 请求头,默认为None
:param params: URL参数,默认为None
:param data: 表单数据,默认为None
:param json_data: JSON数据,默认为None
:return: API响应的JSON数据
"""
try:
if method == 'GET':
response = requests.get(url, headers=headers, params=params)
elif method == 'POST':
if json_data:
response = requests.post(url, headers=headers, json=json_data)
else:
response = requests.post(url, headers=headers, data=data)
else:
raise ValueError(f"Unsupported method: {method}")
# 检查响应状态码
response.raise_for_status()
# 返回响应的JSON数据
return response.json()
except requests.exceptions.RequestException as e:
print(f"Error occurred: {e}")
return None
if __name__ == "__main__":
# 示例API URL(请替换为实际的API地址)
api_url = 'https://jsonplaceholder.typicode.com/posts'
# 调用GET请求示例
print("Calling GET request:")
get_response = call_http_api(api_url, method='GET')
if get_response:
print(f"GET Response: {get_response[:2]} (showing first 2 entries for brevity)")
# 调用POST请求示例(使用JSON数据)
post_data = {
'title': 'foo',
'body': 'bar',
'userId': 1
}
print("\nCalling POST request:")
post_response = call_http_api(api_url, method='POST', json_data=post_data)
if post_response:
print(f"POST Response: {post_response}")
4/运行项目
确保你已经安装了Python和pip。
在项目根目录下创建一个虚拟环境(可选,但推荐):
# 创建虚拟环境
python -m venv venv
# 激活虚拟环境
source venv/bin/activate # 在Windows上使用 `venv\Scripts\activate`
#安装依赖项:
```sh
pip install -r requirements.txt
#运行主程序
python main.py
你应该会看到GET和POST请求的响应输出。
注意事项
请将api_url替换为你要调用的实际API地址。
如果API需要身份验证或其他自定义请求头,请在headers参数中添加相应的值。
这个示例代码只是基础用法,实际应用中可能需要处理更多的错误和异常情况。