如果你想要请求一个没有备案,或者没有 HTTPS 证书的 API,可以借助云函数环境下不受任何限制的 HTTP 请求来获取到数据,并通过云函数的返回,返回给小程序端使用.

在开发小程序的时候,经常会用到一些第三方的 API。但是第三方的 API 往往会有各种各样的问题,比如:

  1. 没有HTTPS
  2. 没有备案
  3. 小程序不支持其中的一些方法

等等。但是,在业务中,我们又必须要使用这些接口,应该如何操作呢?

使用云开发中转

一个比较简单的方法,就是使用云开发来做中转。将有限制的小程序请求,转化为没有限制的云函数请求,就可以轻松实现未备案、无 HTTPS 接口的请求。

具体实现方式

在具体的实现时,主要有以下几个步骤:

  1. 创建用于中转的云函数
  2. 编写请求代码
  3. 上传并部署云函数
  4. 在小程序端请求云函数
API 介绍

假设我们要请求快递 100 的 API,来查询快递信息。由于其没有 HTTPS 证书,所以我们没有办法直接在小程序端查询。所以,我们建立了一个新的云函数 getKuaiDi 来查询快递信息。

我们要调用的 API 地址是 http://www.kuaidi100.com/query?type=快递公司代号&postid=快递单号 ,我们只需要将这里的快递代号和单号替换,并发送一个 get 请求,就可以获取到下面这样的结果。

     "message": "ok","nu": "11111111111","ischeck": "1","com": "yuantong","status": "200","condition": "F00","state": "3","data": [{"time": "2020-02-10 08:47:03","context": "查无结果","ftime": "2020-02-10 08:47:03"}]}

请求代码的创建

接下来来编写代码,首先,我们需要安装依赖,在云函数上右击,选择「在终端中打开」,执行命令安装 got

npm install --save got@9

安装完成后,我们开始编写代码。因为刚刚安装了 got ,我们在云函数中编写代码就简单许多。

`const got = require(‘got’)

// 云函数入口函数
exports.main = async (event, context) => {
const response = await got(http://www.kuaidi100.com/query?type=${event.type}&postid=${event.id})
return response.body
}`

这段代码中,通过 ES6 的新语法,拼接了 event 的参数,形成一个完成的 API 地址,并通过 got 请求了我们刚刚拼接好的 API。再将获取到的 Response 中的 Body 返回给小程序端。

小程序端的调用

上传部署云函数以后,我们可以在小程序端调用这个 API 以验证。在你的小程序端输入这样的代码

wx.cloud.callFunction({ name:"getKuaiDi",data:{"type": "yuantong","id":"11111111111"}}).then(console.log).catch(console.error)

你会看到这样的返回,则说明你的 API 接口正常工作。

  {"message":"ok","nu":"11111111111","ischeck":"0","condition":"B00","com":"yuantong","status":"200","state":"1","data":[{"time":"2020-02-11 11:59:11","ftime":"2020-02-11 11:59:11","context":"揽收任务已分配给王国贤,配送员电话17767187183","location":""}]}

这样,你只需要在调用云函数的时候,通过 data 参数,传入快递公司,以及快递单号,就可以完成接口的查询了。

小程序如何访问未备案的 API相关推荐

  1. 微信小程序运用云函数调用新闻类API

    微信小程序运用云函数调用新闻类API 微信小程序运用云函数调用新闻类API 新闻列表的编写 云函数的编写 JS方法 wxml页面编写 wxss样式 最终效果截图 微信小程序运用云函数调用新闻类API ...

  2. 12.通过微信小程序端访问企查查(采集工商信息)

    12.通过微信小程序端访问企查查(采集工商信息) 需要注意的问题: 一.1.微信端访问企查查小程序需要登录.2.访问抓包获取的url是有时效性的过一段时间就不能用了. http://xcx.qicha ...

  3. 微信小程序学习Course 8 本地缓存API

    微信小程序学习Course 8 本地缓存API 本篇随笔主要介绍微信小程序本地缓存API函数,微信小程序可以在本地缓存一些关键词数据,每一条关键词对应一段字符串.微信小程序提供了以下API函数. 8. ...

  4. 标题微信小程序提示页面未注册问题解决

    标题微信小程序提示页面未注册问题解决 1.出现的问题 在WXML部分编译完成后页面可以正常显示样式,然而在.js文件编辑完成后进行编译时会出现如下错误提示: 2.出现的原因及解决方法 .JS文件中缺少 ...

  5. 今天突然发现,微信小程序手机访问正常,PC端访问小程序图片无法加载?

    今天突然发现,微信小程序手机访问正常,PC端访问小程序图片无法加载? 所有图片在pc上查看都无法显示. 然后使用抓包工具抓包,pc端图片全部403,结果为 AccessDenied You are d ...

  6. 抖音小程序基础之 目前提供哪些API(教程含源码)

    抖音小程序基础之 目前提供哪些API(教程含源码) 小程序开发框架提供丰富的 字节跳动宿主 原生 API,可以方便的调起 字节跳动宿主 提供的能力,如获取系统信息等.详细介绍请参考 API 文档. 通 ...

  7. 解决小程序开发:未找到 app.json 中的定义的 pages “pages/index/index“ 对应的 WXML 文件

    解决小程序开发:未找到 app.json 中的定义的 pages "pages/index/index" 对应的 WXML 文件 (亲测,以解决)如果节约了你的宝贵时间,辛苦点个赞 ...

  8. 微信小程序无法访问豆瓣API, 豆瓣图书小程序示例

    一.访问豆瓣API 官方API地址:图书 Api V2 按照API的示例,图书检索的URL为:https://api.douban.com/v2/book/search?q=检索信息&star ...

  9. 微信小程序如何访问带有Token安全认证的API

    微信小程序访问Token安全验证的API接口 API //添加一个自定义过滤器 using Newtonsoft.Json; using System; using System.Collection ...

  10. 微信小程序之插件未授权访问

    在使用微信同声传译插件时,出现插件未授权访问,这是由于没有在小程序后台添加该第三方插件所致. 在微信公众平台->设置->第三方服务->添加插件->'wx069ba97219f6 ...

最新文章

  1. JTAG与STC,DEBUGWIRE区别
  2. python 点的投影变换
  3. Selenium的简单操作
  4. 小心!智能合约再爆高危漏洞,两大加密货币直接变废纸!
  5. 消息队列之JMS和AMQP对比
  6. 【状压dp】AC Challenge
  7. 善用 CSS 中的 table-layout 屬性加快 Table 的顯示速度
  8. 《数据结构与算法分析:C语言描述》复习——第六章“排序”——插入排序
  9. 开启 TLS 1.3 加密协议,极速 HTTPS 体验
  10. codeforces 286E Ladies' Shop
  11. 高等数学常用符号大全及符号的含义
  12. 163个人邮箱注册申请流程,公司邮箱怎么注册?
  13. mysql视频怎么存_学习怎样把视频文件存储到mysql数据库
  14. 新版微信支持鸿蒙os,微信突然宣布!“新功能”全面爆发,鸿蒙OS措手不及
  15. 微信小程序---快速上手云开发
  16. VMware虚拟机安装win10系统教程(巨细)
  17. icp相关数学,向量模的平方转换成矩阵相乘
  18. 城市区域二手房信息python爬取、保存和初步分析—笔记
  19. 2019-11-11
  20. Android接入支付宝开发

热门文章

  1. 设计模式篇(六)——观察者模式
  2. 清华大学何平:央行数字货币具备许多优势 但不可盲目推进
  3. Cadence Allegro如何设置差分对
  4. C#调用QQ邮箱简单代码(网络摘抄笔记)
  5. windows安装Pentaho Server
  6. 用cmd打开jar文件
  7. android手机双开微信方法,安卓黑科技:一机同时双开多个QQ/微信
  8. 苹果手机来电归属地_手机号码归属地能否取消?
  9. python实现格兰杰因果关系检验
  10. 华为5G专利收费标准曝光!原来卖专利真的很挣钱