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

119 lines
2.5 KiB
Markdown
Raw Permalink Normal View History

2024-01-15 11:33:52 +08:00
# 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())
```