首页 > 其他分享 >移动解析HttpDNS

移动解析HttpDNS

时间:2024-12-24 09:53:25浏览次数:7  
标签:移动 res request httpdns HttpDNS 服务商 fail 解析

移动解析HttpDNS

从基础库 2.19.2 开始支持

开发者调用wx.request时,可以开启移动解析HttpDNS服务。 该服务基于Http协议向服务商的DNS服务器发送域名解析请求,替代了基于DNS协议向运营商Local DNS发起解析请求的传统方式,可以避免Local DNS造成的域名劫持和跨网访问问题,解决移动互联网服务中域名解析异常带来的困扰。

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

  1. 前往微信服务市场选购 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

标签:移动,res,request,httpdns,HttpDNS,服务商,fail,解析
From: https://www.cnblogs.com/AtlasLapetos/p/18623938

相关文章

  • ArkTS 容器与原生容器行为差异解析
    ArkTS容器与原生容器行为差异解析在当今数字化浪潮下,容器技术愈发关键,无论是原生容器,还是鸿蒙系统独具特色的ArkTS容器,都在各自生态里扮演重要角色。二者虽都旨在实现应用隔离与资源高效利用,但在诸多行为细节上存有明显差异。资源调度与管理原生容器,以Docker为典型代表,遵......
  • 《docker高级篇(大厂进阶):2.DockerFile解析》包括:是什么、DockerFile构建过程解析、Dock
    @目录二、高级篇(大厂进阶)2.DockerFile解析2.1是什么2.2DockerFile构建过程解析2.3DockerFile常用保留字指令2.4案例2.4.1自定义镜像mycentosjava82.4.2虚悬镜像2.5小总结本人其他相关文章链接二、高级篇(大厂进阶)2.DockerFile解析2.1是什么问题:DockerFile是什么?......
  • CountDownLatch底层原理、源码解析
    CountDownLatch通过AQS实现了基于计数器的同步机制。多个线程可以在计数值未达到0时进入等待状态,而其他线程可以通过调用countDown()减少计数值。当计数值减至0时,所有等待的线程会被唤醒并继续执行。下面只保留关键代码,解析见注释。CountDownLatch:publicclassCountDown......
  • 车载网关性能 --- GW ECU报文(message)处理机制的技术解析
    我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师:所谓鸡汤,要么蛊惑你认命,要么怂恿你拼命,但都是回避问题的根源,以现象替代逻辑,以情绪代替思考,把消极接受现实的懦弱,伪装成乐观面对不幸的豁达,往不幸上面喷“......
  • mysql explain 结果的extra字段解析
    usingindex:sql语句没有where查询条件,使用覆盖索引,不需要回表查询即可拿到结果usingwhere:没有使用索引/使用了索引但需要回表查询且没有使用到下推索引usingindex&&useingwhere:sql语句有where查询条件,且使用覆盖索引,不需要回表查询即可拿到结果。Usingindexcon......
  • Python面向对象中 `self` 与 `cls` 的区别及用法解析:中英双语
    Python中self与cls的区别及用法解析在Python面向对象编程中,self和cls是两个常见的关键字,它们分别用于实例方法和类方法。本文将详细介绍它们的作用、区别及使用场景,并通过代码示例帮助大家理解如何调用这些方法。1.什么是self?1.1定义与作用self是实例方......
  • APP 渗透测试指南(一)--- 安卓测试环境部署(超级详细)(成为移动黑客,手机kali安装最简单教
    绪论如果各位师傅觉得有用的话,可以给我点个关注~~如果师傅们有什么好的建议也欢迎联系我~~感谢各位师傅的支持~~投票   不好意思各位师傅,最近断更了好久,工具太多了写不过来了,后续会继续保持更新!!!想麻烦各位师傅进行一下投票,后续会优先更新投票数量最多的内容! ......
  • 构建 LLM 商业应用:迭代升级与关键要素全解析
    摘要:在当今数字化时代,大语言模型(LLM)正深刻改变着商业格局。从智能客服到精准营销,从内容生成到风险预测,LLM的商业应用潜力巨大。然而,要构建高效、可靠的LLM商业应用并非一蹴而就,需要经历系统的迭代步骤,同时充分认识到精准语料的重要性以及掌握有效的语料加工流程。本文将......
  • Vue.js组件通信深度解析:构建高效、灵活的数据流
    Vue.js组件通信深度解析:构建高效、灵活的数据流引言在现代Web开发中,组件化是实现高效、可维护和可扩展代码的关键。Vue.js作为一款流行的前端框架,提供了强大的组件系统,使得开发者可以轻松地创建、注册和管理组件。然而,组件之间的通信是构建复杂应用时不可避免的问题。本文......
  • 题山采玉:(双指针) 移动零
    嘿,各位技术潮人!好久不见甚是想念。生活就像一场奇妙冒险,而编程就是那把超酷的万能钥匙。此刻,阳光洒在键盘上,灵感在指尖跳跃,让我们抛开一切束缚,给平淡日子加点料,注入满满的passion。准备好和我一起冲进代码的奇幻宇宙了吗?Let'sgo!我的博客:yuanManGan我的专栏:C++入门小馆 C......