Table of Contents
Vesrion:Asp.Net Core 3.1
微信小程序 wx.request 封装
条件:
小程序后台要加入https://api.**.com,域名要备案、域名要启用https协议。
微信小程序,通用Http请求方式,及后台接收参数的方式(后台为 .net core)
小程序客户端 http get 原型
office doc:https://developers.weixin.qq.com/miniprogram/dev/api/network/request/wx.request.html
result:
request ok output:
request error output:
小程序客户端 http get 原型+token
小程序客户端 http get 原型+Promise
小程序客户端 http post 原型
wx.request的封装
wx.request的Promise封装
配置域名
一般情况下,项目中的域名前缀都是配置在 app.js 中
封装 wx.request
在小程序目录下建立 api 文件夹,并在文件夹下创建 api.js 脚本。下面开始封装 wx.request
管理 api 接口
项目中的 api 大部分都是可以复用的。为了后期方便维护管理,这个时候需要把 api 提出来。有多种方法,比如可以按模块建立相应的 js 脚本。如下:
使用封装过后的 api
post 请求就是api.post()...,get 请求就是api.get()...
Node.js发送请求
- Node.js发送请求,需要用到request这个模块
- request官网
- 先导入这个模块
npm install request --save
GET请求
var url = 'http://192.168.0.102:3000/home?name=xmg'
// 发送Get请求
// 第一个参数:请求的完整URL,包括参数
// 第二个参数:请求结果回调函数,会传入3个参数,第一个错误,第二个响应对象,第三个请求数据
request(url,function (error, response, data) {
console.log(data)
});
Post请求
- post请求有3种方式,由请求头中的content-type决定,属于哪一种post请求
- application/x-www-form-urlencoded: 普通http请求方式,参数是普通的url参数拼接
- application/json: JSON请求方式,参数是json格式
- multipart/form-data: 文件上传
application/x-www-form-urlencoded
var url = 'http://192.168.0.102:3000/home?name=xmg'
request.post({url:url, form:{key:'value'}}, function(error, response, body) {
if (!error && response.statusCode == 200) {
}
})
application/json
var url = 'http://192.168.0.102:3000/home'
request({
url: url,
method: "POST",
json: true,
headers: {
"content-type": "application/json",
},
body: JSON.stringify(requestData)
}, function(error, response, body) {
if (!error && response.statusCode == 200) {
}
});
multipart/form-data
var url = 'http://192.168.0.102:3000/home'
var formData = {
// Pass a simple key-value pair
my_field: 'my_value',
// Pass data via Buffers
my_buffer: new Buffer([1, 2, 3]),
// Pass data via Streams
my_file: fs.createReadStream(__dirname + '/unicycle.jpg'),
};
request.post({url:url, formData: formData}, function (error, response, body) {
if (!error && response.statusCode == 200) {
}
})
服务器Web API端(.Net core 3.x)
create service
step 1:create service
step 2:register service
Api Controllers
result:
step 3:http://localhost:5000/api/productstocktype
这里出现了两个问题:
(1)使用Asp.Net Core 3.1 的Web Api 返回数据发现字段名称被转换为小驼峰格式。首字母都被改成小写了。
(2)小程序端需要的时 _id,但这里输出的为id
考虑到web api服务于多终端,如网页版,就不在这里解决。留在小程序端来解决。
step 4:设置json字符串大小写原样输出
output:
调用方式: