stagex/curlurl-retriever 是一个轻量级的 URL 检索工具与开发库镜像,提供命令行工具与可编程接口,支持通过 HTTP/HTTPS 协议与网络资源交互,可用于发送请求、获取响应数据及集成到应用开发流程中。
docker run url-retriever --url [***])通过 Docker Hub 拉取最新版本镜像:
bashdocker pull url-retriever:latest
执行 HTTP GET 请求并输出响应体:
bashdocker run --rm url-retriever \ --url "[***]" \ --method "GET"
发送 JSON 格式请求体并指定自定义头:
bashdocker run --rm url-retriever \ --url "[***]" \ --method "POST" \ --headers '{"Content-Type": "application/json", "Authorization": "Bearer token123"}' \ --body '{"key": "value"}'
通过环境变量配置默认行为(优先级低于命令行参数):
| 环境变量 | 描述 | 默认值 | 示例值 |
|---|---|---|---|
DEFAULT_URL | 默认请求 URL | 无(必填) | [***] |
DEFAULT_METHOD | 默认 HTTP 方法 | GET | POST |
TIMEOUT | 请求超时时间(秒) | 30 | 10 |
PROXY | 代理服务器地址 | 无 | [***] |
LOG_LEVEL | 日志级别(debug/info/warn/error) | info | debug |
示例:通过环境变量设置默认超时与代理
bashdocker run --rm \ -e TIMEOUT=10 \ -e PROXY="[***]" \ url-retriever \ --url "[***]"
通过挂载本地配置文件(JSON 格式)定义复杂请求规则:
json# 本地配置文件 config.json { "requests": [ { "url": "[***]", "method": "GET", "headers": {"User-Agent": "url-retriever/1.0"}, "timeout": 15 }, { "url": "[***]", "method": "POST", "body": {"data": "test"}, "retry": 2 } ] }
挂载并执行配置文件中的请求:
bashdocker run --rm \ -v $(pwd)/config.json:/app/config.json \ url-retriever --config /app/config.json
镜像内置多语言 SDK,支持在应用中直接调用 URL 检索功能(以 Python 为例):
bash# 进入容器交互式环境 docker run -it --rm url-retriever sh # 安装 Python SDK pip install url-retriever-sdk
pythonfrom url_retriever import Retriever # 初始化检索器 retriever = Retriever(timeout=10, proxy="[***]") # 发送 GET 请求 response = retriever.get("[***]") print(f"Status: {response.status_code}") print(f"Body: {response.body}") # 发送 POST 请求 response = retriever.post( url="[***]", body={"key": "value"}, headers={"Content-Type": "application/json"} )
场景:定时检查网站可用性并记录响应状态
bashdocker run --rm \ -e LOG_LEVEL=debug \ -e TIMEOUT=5 \ url-retriever \ --url "[***]" \ --method "HEAD" \ --output /dev/stdout # 输出响应状态码到标准输出
场景:集成到监控服务,定时发送请求并输出日志
yaml# docker-compose.yml version: "3" services: url-retriever: image: url-retriever:latest environment: - DEFAULT_URL=[***] - METHOD=GET - TIMEOUT=5 - LOG_LEVEL=info volumes: - ./logs:/app/logs # 挂载日志目录 command: --output /app/logs/healthcheck.log # 日志输出到文件
启动服务:
bashdocker-compose up -d
--insecure 命令行参数pip、Node.js 的 npm)

manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务