Ant design pro使用(四):请求数据

utils/request.ts文件

import { extend } from 'umi-request';
import { notification } from 'antd';
import {stringify} from 'qs'
//导出sessio 和 userid 
import {getSession,getUserID} from '@/utils/memory'
//引入错误码
import errorText from './errorText.json'
const {codeMessage ,serverMessage} = errorText;
/**
 * 异常处理程序
 */
const errorHandler = (error: { response: Response }): Response => {
  const { response } = error;
  
  if (response && response.status) {
    const errorText = codeMessage[response.status] || response.statusText;
    const { status, url } = response;

    notification.error({
      message: `请求错误 ${status}: ${url}`,
      description: errorText,
    });
  } else if (!response) {
    notification.error({
      description: '您的网络发生异常,无法连接服务器',
      message: '网络异常',
    });
  }
  return response;
};
/**
 * 配置request请求时的默认参数
 */
const request = extend({
  errorHandler, // 默认错误处理
  timeout:10000,
  method:'POST',
  headers: { 
    'Content-Type': 'application/x-www-form-urlencoded;charset=utf-8',
   }
});
request.interceptors.request.use(async (url:string,options:any={})=>{
  const session = getSession();
  const userId = getUserID();
  const {f} = options.data;
  const value = session && userId ? Object.assign({},{f},{session,userId},options.data): Object.assign({},options.data);
  options.data =stringify(value);
  return {
    url,options
  }
});
request.interceptors.response.use(async (response, options) => {
  let result:any={};
  if(response.status!==200){
    notification.error({
      message:serverMessage[response.status],
      top:30
    });
    return false;
  }else{
    const data = await response.clone().json();//{code: -1, msg: "Invalid Parameter", data: null}
    if(data.code!==0){
       notification.error({
          message:codeMessage[data.code],
          top:30
       });
       return false;
    }else{
      result = data.data;
    }
  }
  return result === 0?true:result
})
export default request;

request调用

import request from '@/utils/request';
export async function loginApi({mobile,token}){
    return request(baseURL,{
        method:'POST',
        data:{
            f:'Login',
            mobile,token
        }
    })
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值