This repository has been archived on 2024-07-11. You can view files and clone it, but cannot push or open issues or pull requests.
proxyapi/README.md
2024-01-15 11:33:52 +08:00

119 lines
2.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Proxy API
文档介绍了 Proxy API 接口的使用方法。该接口允许用户通过 POST 请求发送数据,以代理方式请求指定的 URL并返回请求的响应。
## 功能
- **代理请求**: 接口接受 JSON 格式的数据,包括目标 URL、HTTP 方法和其他可选参数,然后将请求转发到指定的 URL。
- **支持多种 HTTP 方法**: 支持 GET、POST、PUT、DELETE 和 PATCH 方法。
- **自定义请求参数**: 允许用户自定义 headers、cookies、请求体等。
## 使用方法
发送一个 POST 请求到 `/proxy`,请求体应包含以下字段:
- `url`: 必填,目标 URL。
- `method`: 必填HTTP 方法(如 `get`、`post` 等)。
- `params`: 可选URL 参数。
- `data`: 可选,表单数据。
- `json`: 可选JSON 数据。
- `headers`: 可选,请求头。
- `cookies`: 可选cookies 数据。
- `timeout`: 可选,默认为 10 秒。
- `allow_redirects`: 可选,默认为 True。
## 请求示例
```json
{
"url": "http://example.com/api",
"method": "post",
"json": {
"key1": "value1",
"key2": "value2"
}
}
```
## 响应格式
响应将包含以下字段:
- `status`: 请求状态,`success` 或 `error`
- `msg`: 状态消息,成功时为 "Request successful",错误时为错误描述。
- `data`: 包含响应的实际数据,如下:
- `headers`: 响应头部信息。
- `body`: 响应正文。
- `cookies`: 响应中的 cookies。
## 响应示例
成功响应:
```python
response_data = {
'url': response.url,
'headers': dict(response.headers),
'status_code': response.status_code,
'text': response.text,
'json': response_json,
'cookies': requests.utils.dict_from_cookiejar(response.cookies)
}
```
```json
{
"status": "success",
"msg": "Request successful",
"data": {
"url": { ... },
"headers": { ... },
"status_code": { ... },
"text": { ... },
"json": { ... },
"cookies": { ... },
}
}
```
错误响应:
```json
{
"status": "error",
"msg": "Error description",
"data": {}
}
```
## 示例代码
```python
import json
import requests
# 代理 API 的 URL
url = 'http://localhost:5000/proxy'
# 要请求的目标 URL 和参数
payload = {
"url": "https://httpbin.org/post", # 目标 URL
"method": "post", # HTTP 方法
"json": { # JSON 数据
"key1": "value1",
"key2": "value2"
}
}
# 发送 POST 请求到代理 API
response = requests.post(url, json=payload)
# 打印响应内容
print(response.json())
```