Skip to content

URL 参数详解 (URL Options)

Legado 源中的 URL 支持通过 JSON 对象附加请求参数,控制请求方法、编码、Headers、WebView 等行为。

1. 基本语法

URL 和参数之间用逗号 , 连接:

URL,{JSON 参数}

简单 GET 请求:

https://www.example.com/api/list

带参数的请求:

https://www.example.com/api/list,{
    "charset": "gbk",
    "headers": {"User-Agent": "Mozilla/5.0 ..."}
}

2. UrlOption 完整字段

字段类型必须说明
methodString请求方法,GET(默认)或 POST
charsetString响应编码,默认 utf-8
headersObject自定义请求头
bodyStringPOST 请求体
webViewBoolean是否使用 WebView 加载
jsString解析 URL 时执行的 JS
typeString文件类型(用于文件类源)
retryInt重试次数,默认 0
proxyString代理地址,见 请求头配置

3. GET 请求

简单形式

https://www.example.com/api/list

带 Headers

https://www.example.com/api/list,{
    "headers": {
        "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36",
        "Accept-Language": "zh-CN,zh;q=0.9"
    }
}

指定编码

https://www.example.com/list,{
    "charset": "gbk"
}

使用 WebView

https://www.example.com/book/123,{
    "webView": true
}

JS 动态构建

javascript
var ua = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36";
var headers = {"User-Agent": ua};
var option = {
    "charset": "gbk",
    "headers": headers,
    "webView": true
};
"https://www.example.com," + JSON.stringify(option)

4. POST 请求

简单形式

https://www.example.com/search,{
    "method": "POST",
    "body": "keyword=系统&page=1"
}

带 Headers 和编码

https://www.example.com/search,{
    "charset": "gbk",
    "method": "POST",
    "body": "searchkey={{key}}&page={{page}}",
    "headers": {
        "User-Agent": "Mozilla/5.0 ..."
    }
}

JS 动态构建

javascript
var body = "key=" + key + "&page=" + page;
var option = {
    "method": "POST",
    "body": String(body),
    "headers": {"User-Agent": "Mozilla/5.0 ..."}
};
"https://www.example.com/search," + JSON.stringify(option)

body 类型

body 必须保证是 JavaScript 的 String 类型。变量是计算得到的尽量都用 String() 强转。

5. WebView 模式

设置 "webView": true 后,Legado 会使用内置 WebView 加载页面,适用于需要 JavaScript 渲染的网站。

WebView 加载

https://www.example.com/book/123,{
    "webView": true
}

WebView + 正文嗅探

章节链接加 {"webView": true},配合正文的 sourceRegex 嗅探媒体资源:

json
{
    "ruleToc": {
        "chapterUrl": "href##$##{\"webView\":true}"
    },
    "ruleContent": {
        "content": "<js>result</js>",
        "sourceRegex": ".*\\.(mp3|mp4).*"
    }
}

嗅探步骤:

  1. 章节链接后面加 ,{"webView":true}
  2. 在有嗅探功能的浏览器中输入章节链接(不带 webView 参数)
  3. 媒体开始播放后使用浏览器的嗅探功能查看资源链接
  4. 在资源正则里填写资源链接的正则,如 .*\.(mp3|mp4).*
  5. 正文填写 <js>result</js>

6. 模板变量

URL 中可使用以下模板变量:

变量说明适用位置
搜索关键字搜索 URL
页码(从 1 开始)搜索 URL、发现 URL
第一页无页码搜索 URL、发现 URL
<,>第一页无页码(简写)搜索 URL、发现 URL

页码计算示例

/search?key={{key}}&start={{(page-1)*20}}&limit=20
/search?key={{key}}&page={{page - 1 == 0 ? "" : page}}

7. 相对 URL

URL 支持相对路径,会自动基于源 URL 拼接:

/search?key={{key}}     // 相对于 bookSourceUrl
/api/list               // 相对于 bookSourceUrl

基于 Apache-2.0 许可发布