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

2.5 KiB
Raw Permalink Blame History

Proxy API

文档介绍了 Proxy API 接口的使用方法。该接口允许用户通过 POST 请求发送数据,以代理方式请求指定的 URL并返回请求的响应。

功能

  • 代理请求: 接口接受 JSON 格式的数据,包括目标 URL、HTTP 方法和其他可选参数,然后将请求转发到指定的 URL。
  • 支持多种 HTTP 方法: 支持 GET、POST、PUT、DELETE 和 PATCH 方法。
  • 自定义请求参数: 允许用户自定义 headers、cookies、请求体等。

使用方法

发送一个 POST 请求到 /proxy,请求体应包含以下字段:

  • url: 必填,目标 URL。
  • method: 必填HTTP 方法(如 getpost 等)。
  • params: 可选URL 参数。
  • data: 可选,表单数据。
  • json: 可选JSON 数据。
  • headers: 可选,请求头。
  • cookies: 可选cookies 数据。
  • timeout: 可选,默认为 10 秒。
  • allow_redirects: 可选,默认为 True。

请求示例

{
    "url": "http://example.com/api",
    "method": "post",
    "json": {
        "key1": "value1",
        "key2": "value2"
    }
}

响应格式

响应将包含以下字段:

  • status: 请求状态,successerror

  • msg: 状态消息,成功时为 "Request successful",错误时为错误描述。

  • data: 包含响应的实际数据,如下:

    • headers: 响应头部信息。
    • body: 响应正文。
    • cookies: 响应中的 cookies。

响应示例

成功响应:

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)
}
{
    "status": "success",
    "msg": "Request successful",
    "data": {
        "url": { ... },
        "headers": { ... },
        "status_code": { ... },
        "text": { ... },
        "json": { ... },
        "cookies": { ... },
    }
}

错误响应:

{
    "status": "error",
    "msg": "Error description",
    "data": {}
}

示例代码

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