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())
|
||
|
||
```
|
||
|