119 lines
2.5 KiB
Markdown
119 lines
2.5 KiB
Markdown
|
# 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())
|
|||
|
|
|||
|
```
|
|||
|
|