• Lv0
    粉丝0

积分0 / 贡献0

提问1答案被采纳0文章0

作者动态

    使用axios封装请求库,发现需要一些公共参数和加密检验,需要在拦截器中把get请求的参数拼接到url后面,怎么请求都发现不对

    ArkTser 显示全部楼层 发表于 2024-9-20 17:13:12

    【问题描述】

    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,"&");这行运行起来老是报错,为啥呢

    您尚未登录,无法参与评论,登录后可以:
    参与开源共建问题交流
    认同或收藏高质量问答
    获取积分成为开源共建先驱

    精彩评论1

    马迪

    沙发 发表于 2024-9-21 15:43:56
    有这个@ohos/querystringify 库吗? 三方库中心仓没看到这库呢?

    Copyright   ©2023  OpenHarmony开发者论坛  京ICP备2020036654号-3 |技术支持 Discuz!

    返回顶部