Skip to content

请求头配置 (Request Headers)

源的请求头字段用于控制 HTTP 请求行为,包括代理设置、自定义 Headers 和动态参数注入。

1. 基本格式

请求头以 JSON 对象形式填写,key 区分大小写

正确错误
User-Agentuser-agent
Refererreferer

2. 代理配置 (Proxy)

支持 HTTP、SOCKS4、SOCKS5 三种代理协议。

协议格式示例
SOCKS5socks5://host:port{"proxy": "socks5://127.0.0.1:1080"}
SOCKS4socks4://host:port{"proxy": "socks4://127.0.0.1:1080"}
HTTPhttp://host:port{"proxy": "http://127.0.0.1:1080"}
HTTP(带认证)http://host:port@user@pass{"proxy": "http://127.0.0.1:1080@admin@secret"}

3. URL 附加 JS 参数

在 URL 后附加 JSON 对象,可在解析 URL 时执行 JavaScript 动态处理请求。

语法:

URL,{"js":"JavaScript 代码"}

示例:

https://www.example.com,{"js":"java.headerMap.put('xxx', 'yyy')"}
https://www.example.com,{"js":"java.url=java.url+'yyyy'"}

4. 图片链接自定义 Headers

在正文图片链接中附加自定义请求头,适用于需要 Referer 或 Cookie 才能加载图片的场景。

js
let options = {
  "headers": {
    "User-Agent": "xxxx",
    "Referrer": baseUrl,
    "Cookie": "aaa=vbbb;"
  }
};
'<img src="' + src + "," + JSON.stringify(options) + '">'

5. 重定向拦截 (Redirect Interception)

通过 java.get / java.post 方法拦截重定向,获取最终跳转后的 URL。适用于搜索结果会重定向的网站。

js
// 方法签名
java.get(urlStr: String, headers: Map<String, String>)
java.post(urlStr: String, body: String, headers: Map<String, String>)

示例:搜索重定向场景下获取真实 URL:

js
(() => {
  if (page == 1) {
    let url = 'https://www.example.com/search,' + JSON.stringify({
      "method": "POST",
      "body": "show=title&tempid=1&keyboard=" + key
    });
    return source.put('surl', String(java.connect(url).raw().request().url()));
  } else {
    return source.get('surl') + '&page=' + (page - 1)
  }
})()

基于 Apache-2.0 许可发布