OpenHarmony开发者论坛
标题:
使用axios封装请求库,发现需要一些公共参数和加密检验,需要在拦截器中把get请求的参数拼接到url后面,怎么请求都发现不对
[打印本页]
作者:
ArkTser
时间:
2024-9-20 17:13
标题:
使用axios封装请求库,发现需要一些公共参数和加密检验,需要在拦截器中把get请求的参数拼接到url后面,怎么请求都发现不对
[md]### 【问题描述】
```
simport { stringify } from 'querystringify'; // 处理URL参数拼接 ohpm i @ohos/querystringify
import querystringify from 'querystringify';
import axios,{ AxiosError,AxiosResponse,InternalAxiosRequestConfig } from '@ohos/axios'
export const requestUse = axios.create({
// baseURL: BASE_URL,
// timeout: TIME_OUT,
headers: { 'id': '001', 'token': 'xxx' },
})
const requestInterceptors = requestUse.interceptors.request.use(
async (config: InternalAxiosRequestConfig) => {
let headers = config.headers
headers["header1"] = 'interceptor_001'
if (config.method === 'get' && config.params) {
// 使用 querystringify 序列化参数
const queryString = stringify(config.params,"&");
// const queryString = stringify(JSON.stringify(config.params),"&");
config.url = `${config.url}?${queryString}`;
config.params = {}; // 清空 params 避免 Axios 重新处理
}
return config
},
(error: AxiosError) => {
return error
}
)
export default class Http{
get<T>(url:string,params?:Object){
return requestUse.get<null,T>(url,{params})
}
}
export const http = new Http();
```
### 【运行环境】
硬件:模拟器
DevEvoStudio版本:5.0.3.706
SDK版本:12
const queryString = stringify(config.params,"&");这行运行起来老是报错,为啥呢
[/md]
作者:
马迪
时间:
2024-9-21 15:43
有这个@ohos/querystringify 库吗? 三方库中心仓没看到这库呢?
欢迎光临 OpenHarmony开发者论坛 (https://forums.openharmony.cn/)
Powered by Discuz! X3.5