uniapp微信小程序请求接口封装源码
时间: 2023-04-08 09:02:55 浏览: 137
我可以回答这个问题。Uniapp是一个跨平台的开发框架,可以用于开发微信小程序、App、H5等多种应用。在Uniapp中,可以使用uni.request()方法来发送请求,具体的封装源码可以根据具体需求进行编写。
相关问题
uniapp微信小程序网络请求封装携带token
可以通过给请求头添加 Authorization 字段来携带 token,示例代码如下:
```
uni.request({
url: 'https://example.com/api',
method: 'GET',
header: {
'Authorization': 'Bearer ' + token
},
success: function(res) {
console.log(res.data);
},
fail: function(res) {
console.log(res.errMsg);
}
});
```
其中,token 是你获取到的身份验证的 token 值。在请求头中添加 Authorization 字段,值为 'Bearer ' + token,其中的 Bearer 表示此 token 的类型为 Bearer Token。
uniapp微信小程序分页请求后端案例
以下是一个简单的 uniapp 微信小程序分页请求后端的案例:
1. 在 uniapp 中创建一个页面,命名为 ListPage.vue。
2. 在 ListPage.vue 中,添加一个列表组件,例如:
```
<template>
<view>
<list :list="dataList"></list>
<loadmore :loading="loading" :finished="finished" @load="loadData"></loadmore>
</view>
</template>
<script>
import List from '@/components/List.vue'
import LoadMore from '@/components/LoadMore.vue'
export default {
components: {
List,
LoadMore,
},
data() {
return {
dataList: [],
loading: false,
finished: false,
currentPage: 1,
pageSize: 10,
}
},
methods: {
async loadData() {
if (this.loading || this.finished) return
this.loading = true
const res = await uni.request({
url: '/api/getDataList',
data: {
page: this.currentPage,
size: this.pageSize,
},
})
if (res.statusCode === 200) {
const dataList = res.data.dataList
const total = res.data.total
this.dataList = this.dataList.concat(dataList)
if (this.dataList.length >= total) {
this.finished = true
} else {
this.currentPage++
}
}
this.loading = false
},
},
}
</script>
```
3. 在 ListPage.vue 中,添加一个接口请求方法,例如:
```
async getDataList(page, size) {
const res = await uni.request({
url: '/api/getDataList',
data: {
page: page,
size: size,
},
})
if (res.statusCode === 200) {
return res.data
} else {
throw new Error('Network Error')
}
},
```
4. 在后端服务器中,添加一个路由处理程序,例如:
```
router.get('/api/getDataList', async (req, res) => {
const page = parseInt(req.query.page) || 1
const size = parseInt(req.query.size) || 10
const startIndex = (page - 1) * size
const endIndex = startIndex + size
try {
const dataList = await getDataListFromDatabase(startIndex, endIndex)
const total = await getTotalFromDatabase()
res.json({
dataList: dataList,
total: total,
})
} catch (error) {
res.status(500).send(error.message)
}
})
```
5. 在后端服务器中,添加一个数据查询方法,例如:
```
async function getDataListFromDatabase(startIndex, endIndex) {
const result = await db.query(`
SELECT * FROM data_table
ORDER BY id DESC
LIMIT ${startIndex}, ${endIndex}
`)
return result.rows
}
```
6. 在后端服务器中,添加一个数据统计方法,例如:
```
async function getTotalFromDatabase() {
const result = await db.query(`
SELECT COUNT(*) FROM data_table
`)
return result.rows[0].count
}
```
7. 运行后端服务器和微信小程序,即可在 ListPage 页面上看到分页列表和加载更多按钮。
注意:以上代码仅供参考,实际项目中需要根据具体需求进行修改和优化。