Skip to content

执行配置参考 ​

业务参数决定要查什么,执行配置决定用哪个身份、等多久、怎样联网。下面这些设置用于 SDK 或底层请求,不是 HTTP query 参数。

配置放在哪里 ​

入口配置位置
createHanaMusicApi(config)client 默认配置,可额外设置 cache 和 identityPool
hana.search(query, config)、search(query, config)第二个参数,类型为 ModuleCallConfig
invokeModule(identifier, query, config)第三个参数,类型为 ModuleCallConfig
createRequest(uri, data, options)第三个参数,使用请求配置字段,不含模块专用的 deviceId

client 的默认配置与单次配置按顶层字段合并,单次配置优先。嵌套对象不会递归合并。HTTP 只接受业务参数及 cookie、noCookie,见 调用约定。

身份与请求头 ​

字段类型未设置时作用
cookiestring | CookieRecord从 Cookie 请求头或运行时身份解析传递账号或游客身份
deviceIdstring自动生成合格设备号SDK 隐式匿名注册使用的设备号,建议用 generateDeviceId() 生成
checkTokenstring | (() => Promise<string>)未设置支持该配置的写模块使用的易盾令牌;传函数时每次收藏前调用
headersRecord<string, string>无额外请求头与协议生成的头合并;协议所需字段可能覆盖自定义值
statePartial<RuntimeState>使用进程状态按次覆盖匿名令牌、设备号和默认来源 IP
ipstring使用运行时 cnIp设置来源 IP 请求头
realIPstring使用 ip 或 cnIp比 ip 优先,仍只影响请求头
uastring按协议选择覆盖 User-Agent

显式 cookie 优先于 headers 中的 Cookie,头名不区分大小写。ip 和 realIP 不会改变实际网络出口。细节见 运行时状态与身份。

deviceId 仅用于 SDK 需要发起匿名注册时;已有账号 Cookie、游客令牌或进程游客身份时不会重新注册。它不替代 state.deviceId 的按次覆盖能力,也不是 HTTP 参数。合格条件和保存设备号的示例见 匿名注册的设备号。

checkToken 目前只被 playlist_subscribe 使用:收藏(t=1)时该模块使用 weapi os=web,在正文和 HTTP 头携带同一个令牌;传函数时每次收藏前调用一次。取消收藏(t=0)走 weapi 网页写法,不取令牌。令牌必须由调用方从稳定设备/会话现取,SDK 不生成、不缓存、不重放;HTTP 服务会拒绝这个配置。详见 收藏/取消收藏歌单。

网络、期限和观测 ​

字段类型默认值作用
proxystring无代理HTTP 代理地址,不支持 PAC
fetcherFetchLike运行时 fetch替换发送请求的实现,必须配合取消信号
timeoutMsnumber普通调用 8000整次调用的总期限,包含准备身份、等待、重试和读取正文
signalAbortSignal无外部取消信号取消本次调用
retryRequestRetryOptions按操作和失败类型判断调整允许重试时的次数、退避和状态码
connectionStrategy'default' | 'close' | 'fresh-on-retry''default'控制 Connection: close 的使用
onRequestEvent(event: RequestDebugEvent) => void无回调观察尝试、重试和请求失败事件

proxy 和自定义 fetcher 不能同时传。timeoutMs 为 0 或负数时关闭普通调用的总超时;上传仍受阶段 60 秒、总计 5 分钟的上限约束,正数配置只能进一步缩短上传总期限。

createRequest 不执行 SDK 游客身份初始化,其默认 8 秒用于这次底层请求。HTTP 读取客户端请求体另有超时,见 部署 HTTP 服务。

详细行为见 自定义 fetcher、重试与超时、调试与可观测性。

协议设置 ​

字段类型未设置时作用
crypto'' | 'api' | 'eapi' | 'weapi' | 'linuxapi'模块选择协议;底层请求默认 eapi指定 API 协议,空字符串按未指定处理
domainstring协议对应的内置域名覆盖目标域名,仍受目标策略检查
e_rboolean | number | string默认 false,也可来自请求数据请求加密响应,eapi 和 weapi 支持解密
acceptGzipbooleanfalse声明接受 gzip 压缩的 eapi 响应

日常调用沿用模块默认协议即可。带账号或游客身份的 API 请求只允许已知 HTTPS 网易云 API 域名,domain 不能用来任意转发凭据。e_r、acceptGzip 建议使用明确的布尔值,细节见 加密模式。

仅 client 支持的配置 ​

字段类型默认值作用
cache{ enabled?: boolean; ttlMs?: number }关闭保存明确读接口的成功结果;传对象后默认保存 120 秒,enabled: false 关闭
identityPool{ size: number }关闭首次需要时注册多套游客身份,再按调用轮换

关闭缓存不会关闭正在执行的相同读取的合并。身份池也不会改变真实出口 IP。详见 缓存与身份池。

Released under the MIT License.