有奖捉虫:行业应用 & 管理与支持文档专题 HOT
文档中心 > 移动解析 HTTPDNS > 小程序文档 > 小程序·移动解析接入说明

概述

本文档将指导您如何在微信小程序中接入 HTTPDNS。小程序接入 HTTPDNS 服务可以有效避免小程序因 LocalDNS 造成的域名劫持和跨网访问问题,更有效地保障您的小程序业务正常,避免移动互联网中的劫持、跨网域名解析错误等问题。
微信小程序接入移动解析 HTTPDNS,请参见 微信服务市场移动解析 HTTPDNS 接入说明
说明
当前移动解析 HTTPDNS 服务已上架微信服务市场。
微信小程序开通 HTTPDNS 服务需要在微信服务市场购买,请参见 微信服务市场移动解析 HTTPDNS 购买页
微信小程序开通 HTTPDNS 服务后,解析数据将在微信服务市场后台统一管理,暂未和腾讯云控制台数据联通。
如在使用过程中有任何疑问可 提交需求联系我们

前言

微信小程序从基础库 2.19.2 开始支持 HTTPDNS。
开发者调用 wx.request 时,可以开启移动解析 HTTPDNS 服务。 该服务基于 HTTP 协议向服务商的 DNS 服务器发送域名解析请求,替代了基于 DNS 协议向运营商 LocalDNS 发起解析请求的传统方式,可以避免 LocalDNS 造成的域名劫持和跨网访问问题,解决移动互联网服务中域名解析异常带来的困扰。

小程序开发者使用移动解析说明

1. 前往 微信服务市场 选购 HTTPDNS 资源,并在 HTTPDNS 接入文档 获取 Service ID。
2. 小程序调用 wx.request,将 enableHttpDNS 参数设置为 true,并在 httpDNSServiceId 参数中填入选用的服务商 Service ID

代码示例

wx.request({
url: 'example.php', //仅为示例,并非真实的接口地址
enableHttpDNS: true,
httpDNSServiceId: 'wxa410372c837a5f26',
success(res) {
console.log('request success', res)
},
fail(res) {
console.error('request fail', res)
}
})

计费说明

1. 使用服务所产生的费用会按照实际调用服务商接口情况进行计费,定价策略由服务提供方制定,开发者需自行前往微信服务市场进行购买、续费等操作。
2. 微信侧每次代开发者调用服务商接口时,微信侧会进行缓存,缓存策略由服务商返回的 ttl 决定,因此不一定每次调用 request 接口都会产生费用。
3. 从基础库 v2.32.1 开始,若开发者的服务可用额度为0,仍在 wx.request 接口中声明使用服务商提供的移动解析能力时,会使用 localDNS 解析作为备选方案,并在 success 回调参数 exception.reasons ( reasons 是数组) 中返回 httpdns 欠费的错误信息和错误码,例如 [{ "errMsg": "getDNSInfo:fail no enough httpdns quota", "errno": 602103 }]

注意事项

1. HTTPDNS 不兼容网络代理
在基础库 v2.22.1 版本之前,当用户设备使用了网络代理,同时又开启了 enableHttpDNS 时,request 接口会调用失败,fail 回调 errMsg 中会包含 ERR_PROXY_CONNECTION_FAILED 字样,例如 {"errno":600001,"errMsg":"request:fail -130:net::ERR_PROXY_CONNECTION_FAILED"}{"errno":600001,"errMsg":"request:fail errcode:-130 cronet_error_code:-130 error_msg:net::ERR_PROXY_CONNECTION_FAILED"}
为解决此问题,从基础库 v2.22.1 开始,若用户使用了网络代理,基础库会主动强制关闭 enableHttpDNS。开发者也可以通过 wx.getNetworkType 接口检查用户是否开启了网络代理。用法:
wx.getNetworkType({
success(res) {
console.log(res.hasSystemProxy) // 开启网络代理时为 true,否则为 false
}
})

HTTPDNS 相关错误码

错误码
说明
600000
网络错误
602000
网络请求错误
602001
系统错误
602002
http 请求 HTTPDNS 服务商错误
602101
小程序未在服务市场购买 HTTPDNS 服务
602102
小程序在微信服务市场购买的 HTTPDNS 资源包过期
602103
小程序在微信服务市场的 HTTPDNS 流量包额度不足
602104
HTTPDNS 服务商返回结果为空
602105
调用 HTTPDNS 服务商结果超时
602106
HTTPDNS 服务商返回数据不合法
602107
HTTPDNS 域名解析结果为空
602108
不支持的 HTTPDNS 服务商 Id
?


http://www.vxiaotou.com