- Global - 全局对象
- Automator - 自动化
- AutoJs6 - 本体应用
- App - 通用应用
- Color - 颜色
- Image - 图像
- OCR - 光学字符识别
- Barcode - 条码
- QR Code - 二维码
- Keys - 按键
- Device - 设备
- Storage - 储存
- File - 文件
- Engine - 引擎
- Task - 任务
- Module - 模块
- Plugins - 插件
- Toast - 消息浮动框
- Notice - 消息通知
- Console - 控制台
- Shell
- Shizuku
- Media - 多媒体
- Sensor - 传感器
- Recorder - 记录器
- Timer - 定时器
- Thread - 线程
- Continuation - 协程
- Event - 事件监听
- Dialog - 对话框
- Floaty - 悬浮窗
- Canvas - 画布
- UI - 用户界面
- Web - 万维网
- HTTP
- Base64
- Crypto - 密文
- OpenCC - 中文转换
- Internationalization - 国际化
- Standardization - 标准化
- E4X
- UiSelector - 选择器
- UiObject - 控件节点
- UiObjectCollection - 控件集合
- UiObjectActions - 控件节点行为
- WebSocket
- EventEmitter - 事件发射器
- ImageWrapper - 包装图像类
- App - 应用枚举类
- Color - 颜色类
- Version - 版本工具类
- Polyfill - 代码填泥
- Arrayx - Array 扩展
- Numberx - Number 扩展
- Mathx - Math 扩展
- Glossaries - 术语
- HttpHeader - HTTP 标头
- HttpRequestMethods - HTTP 请求方法
- MimeType - MIME 类型
- NotificationChannel - 通知渠道
- Data Types - 数据类型
- Omnipotent Types - 全能类型
- Storage - 存储类
- AndroidBundle
- AndroidRect
- CryptoCipherOptions
- CryptoKey
- CryptoKeyPair
- ConsoleBuildOptions
- HttpRequestBuilderOptions
- HttpRequestHeaders
- HttpResponseBody
- HttpResponseHeaders
- HttpResponse
- InjectableWebClient
- InjectableWebView
- NoticeOptions
- NoticeChannelOptions
- NoticePresetConfiguration
- NoticeBuilder
- Okhttp3HttpUrl
- OcrOptions
- Okhttp3Request
- OpenCVPoint
- OpenCVRect
- OpenCVSize
- OpenCCConversion
AutoJs6 文档 - 6.6.4
目录
HttpRequestHeaders#
HttpRequestHeaders 是一个代表 HTTP 请求头 信息的接口.
HTTP 标头字段是大小写 不敏感 的 (根据 RFC 2616), 本章节采用 全部小写 的形式表示标头字段 (如 content-type).
注: 本章节仅列出部分请求头字段信息, 更多信息可参阅 HTTP 标头 术语章节.
HttpRequestHeaders
[I] HttpRequestHeaders#
HttpRequestHeaders 接口类型的变量, 实际是将 JavaScript 对象 (通常作为 options.headers
的值) 进行遍历, 将每一个 header 依次传入 okhttp3.Request.Builder 实例.
大致过程如下:
/**
* @param {okhttp3.Request.Builder} request
*/
function setHeaders(request) {
Object.entries(this.options.headers || {}).forEach((entries) => {
let [ key, value ] = entries;
if (Array.isArray(value)) {
value.forEach(v => request.header(key, v));
} else {
request.header(key, value);
}
});
}
[p?] accept#
accept 请求头用来表明客户端可处理的内容类型.
# 语法 (合并)
accept: (<MIME_type>/<MIME_subtype>|<MIME_type>/*|*/*)[;q=<quality-value>]
# 语法 (展开)
accept: <MIME_type>/<MIME_subtype>
accept: <MIME_type>/<MIME_subtype>;q=<quality-value>
accept: <MIME_type>/*
accept: <MIME_type>/*;q=<quality-value>
accept: */*
accept: */*;q=<quality-value>
# 示例
accept: text/html
accept: image/*
accept: text/html, application/xhtml+xml, application/xml;q=0.9, */*;q=0.8
指令 | 含义 |
---|---|
<MIME_type>/<MIME_subtype> | 单一精确的 MIME 类型, 如text/html |
<MIME_type>/* | 未指明子类的一类 MIME 类型. 如 image/* 可用于指代 image/png, image/svg, image/gif 等任何图片类型 |
/ | 任意类型的 MIME 类型 |
<quality-value> | 相对质量价值, 又称作权重, 表示优先顺序, 范围 [0..1], 默认为 1 |
参阅: MDN
[p?] accept-encoding#
请求头 accept-encoding 将客户端能够理解的内容编码方式 (通常为压缩算法) 通知给服务端.
# 语法 (合并)
accept-encoding: (gzip|compress|deflate|br|identity|*)[;q=<quality-value>]
# 语法 (展开)
accept-encoding: gzip
accept-encoding: gzip;q=<quality-value>
accept-encoding: compress
accept-encoding: compress;q=<quality-value>
accept-encoding: deflate
accept-encoding: deflate;q=<quality-value>
accept-encoding: br
accept-encoding: br;q=<quality-value>
accept-encoding: identity
accept-encoding: identity;q=<quality-value>
accept-encoding: *
accept-encoding: *;q=<quality-value>
# 示例
accept-encoding: gzip
accept-encoding: gzip, compress, br
accept-encoding: br;q=1.0, gzip;q=0.8, *;q=0.1
指令 | 含义 |
---|---|
gzip | 采用 Lempel-Ziv coding (LZ77) 压缩算法, 以及 32 位 CRC 校验的编码方式 |
compress | 采用 Lempel-Ziv-Welch (LZW) 压缩算法 |
deflate | 采用 zlib 结构 (RFC 1950) 和 deflate 压缩算法 (RFC 1951) |
br | 采用 Brotli 算法的编码方式 |
identity | 用于指代自身 (如: 未经过压缩和修改). 除非特别指明, 这个标记始终可被接受 |
<quality-value> | 相对质量价值, 又称作权重, 表示优先顺序, 范围 [0..1], 默认为 1 |
参阅: MDN
[p?] accept-language#
accept-language 请求头允许客户端声明它可以理解的自然语言, 及优先选择的区域方言.
# 语法 (合并)
accept-language: (<language>|*)[;q=<quality-value>]
# 语法 (展开)
accept-language: <language>
accept-language: <language>;q=<quality-value>
accept-language: *
accept-language: *;q=<quality-value>
# 示例
accept-language: de
accept-language: de-CH
accept-language: en-US,en;q=0.5
accept-language: zh-CN, zh;q=0.8, zh-TW;q=0.7, zh-HK;q=0.5, en-US;q=0.3, en;q=0.2
指令 | 含义 |
---|---|
<language> | 语言代码或语言区域代码 |
* | 任意语言 |
<quality-value> | 相对质量价值, 又称作权重, 表示优先顺序, 范围 [0..1], 默认为 1 |
参阅: MDN
[p?] connection#
connection 通用标头控制网络连接在当前会话完成后是否仍然保持打开状态.
# 示例
connection: keep-alive
connection: close
指令 | 含义 |
---|---|
close | 表明客户端或服务器想要关闭该网络连接. 这是 HTTP/1.0 请求的默认值 |
keep-alive | 表明客户端想要保持该网络连接打开. HTTP/1.1 的请求默认使用一个持久连接 |
... ... | ... ... |
参阅: MDN
[p?] host#
host 头表示请求发送的目标服务器主机名和端口号.
如无端口号, 将使用服务默认端口 (如 HTTPS: 443, HTTP: 80 等)
所有 HTTP/1.1 请求报文中 必须包含 一个 host 头字段, 缺少或超过一个 host 头的 HTTP/1.1 请求可能会收到 400 (Bad Request) 状态码.
# 语法
host: <host>
host: <host>:<port>
# 示例
host: developer.mozilla.org
指令 | 含义 |
---|---|
<host> | 服务器域名 |
<port> | 服务器监听的 TCP 端口号 |
参阅: MDN
[p?] referer#
referer 请求头包含了当前请求来源页面的地址.
服务端一般使用 referer 头识别访问来源, 以此进行统计分析, 日志记录及缓存优化等.
# 语法
referer: <url>
# 示例
referer: https://developer.mozilla.org/en-US/docs/Web/JavaScript
指令 | 含义 |
---|---|
<url> | 当前页面被链接而至的前一页面的绝对路径或者相对路径 |
参阅: MDN
[p?] user-agent#
user-agent 首部包含了一个特征字符串, 用于让网络协议的对端识别发起请求的用户代理软件的应用类型, 操作系统, 软件开发商以及版本号.
# 语法
User-Agent: <product> / <product-version> <comment>
# 浏览器常用格式
User-Agent: Mozilla/<version> (<system-information>) <platform> (<platform-details>) <extensions>
# 示例
Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:47.0) Gecko/20100101 Firefox/47.0
Mozilla/5.0 (Macintosh; Intel Mac OS X x.y; rv:42.0) Gecko/20100101 Firefox/42.0
Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36
Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.106 Safari/537.36 OPR/38.0.2220.41
Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.30 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1
Googlebot/2.1 (+http://www.google.com/bot.html)
指令 | 含义 |
---|---|
<product> | 产品识别码 |
<product-version> | 产品版本号 |
<comment> | 零个或多个关于组成产品信息的注释 |
参阅: MDN
[p?] cache-control#
标头字段 cache-control 被用于在 HTTP 请求和响应中, 通过指定指令来实现缓存机制.
# 语法
cache-control: max-age=<seconds>
cache-control: max-stale[=<seconds>]
cache-control: min-fresh=<seconds>
cache-control: no-cache
cache-control: no-store
cache-control: no-transform
cache-control: only-if-cached
... ...
指令 | 含义 |
---|---|
max-age=<seconds> | 设置缓存存储最大周期, 单位为秒, 超过这个时间缓存被认为过期 |
max-state[=<seconds>] | 表明客户端愿意接收一个已经过期的资源. 秒数可选, 表示响应过时后不能超过该给定的时间 |
min-fresh=<seconds> | 表示客户端希望获取一个能在指定的秒数内保持其最新状态的响应 |
no-cache | 发布缓存副本前, 强制要求原始服务器进行验证缓存中的请求 |
no-store | 不使用任何缓存 |
no-transform | 不得对资源进行转换或转变 |
only-if-cached | 表明客户端只接受已缓存的响应, 且不要向原始服务器检查是否有更新的拷贝 |
... ... | ... ... |
参阅: MDN
[p?] cookie#
cookie 请求标头包含先前由服务器通过 set-cookie 标头投放或通过 JavaScript 的 Document.cookie
方法设置, 然后存储到客户端的 HTTP cookie.
这个标头是可选的, 且可能会被忽略, 例如在浏览器隐私设置里禁用了 cookie 等.
# 语法
cookie: <cookie-list>
cookie: name=value
cookie: name=value; name2=value2; name3=value3 ...
# 示例
cookie: PHPSESSID=298zf09hf012fh2; csrftoken=u32t4o3tb3gg43; _gat=1
指令 | 含义 |
---|---|
<cookie-list> | 一系列的名值对, 形式为 |
参阅: MDN
[p?] range#
Range 请求首部告知服务器返回文件的哪一部分.
在一个 Range 首部中可以一次性请求多个部分, 服务器会以 multipart 文件的形式将其返回.
# 语法
range: <unit>=<range-start>-
range: <unit>=<range-start>-<range-end>
range: <unit>=<range-start>-<range-end>, <range-start>-<range-end>
range: <unit>=<range-start>-<range-end>, <range-start>-<range-end>, <range-start>-<range-end>
# 示例
range: bytes=200-1000, 2000-6576, 19000-
指令 | 含义 |
---|---|
<unit> | 数据区间所采用的单位, 通常是字节 (bytes) |
<range-start> | 一个整数, 表示在特定单位下范围的起始值 |
<range-end> | 一个整数, 表示在特定单位下范围的结束值. 可选, 默认表示范围一直到文档结束 |
参阅: MDN