一、前言
最近在做一个小项目,遇到了需要在微信小程序中请求第三方API,这倒也不难,但是难的是该第三方API没有备案,无法直接使用微信小程序的请求接口进行访问第三方接口,下面来解决以下这个问题
二、代码示例
1.前端页面-----autounlock.js
// pages/autounlock/autounlock.js
Page({
/**
* 页面的初始数据
*/
data: {
},
history() {
console.log('接口请求中...')
//调用云函数
wx.cloud.callFunction({
// 云函数名称
name: 'http',
// 传给云函数的参数
data: {
url:'https://www.xxx.com'
},
success: function(res) {
console.log(res.result)
//将返回的值转为json格式
var p = JSON.parse(res.result)
console.log(p)
},
fail: console.error
})
},
/**
* 生命周期函数--监听页面加载
*/
onLoad: function (options) {
this.history()
},
...省略其它的周期函数
})
2.云函数http-----index.js
注意:这里我的请求方式是post方式,并且是接口链接拼接字符串参数
的形式
使用云函数前安装这个命令:npm install request-promise
右键http
云函数目录,选择终端窗口,复制命令到窗口中即可
// 云函数入口文件
const cloud = require('wx-server-sdk')
//用于做网络请求
var rp = require('request-promise');
cloud.init()
// 云函数入口函数
exports.main = async (event, context) => {
let url = event.url
return await rp({
url: url,
method: "POST",
json: false,
})
.then(function (res) {
return res
})
.catch(function (err) {
return '失败'
});
}