umi request设定middleware

本文档介绍了如何在App.tsx中设置middlewares、requestInterceptors和responseInterceptors,以及errorHandler。通过middlewares可以处理request和response,如记录特殊日志。errorHandler用于处理错误,能区分业务错误并结合statusCode和response。requestInterceptors在请求发送前添加如authkey的信息,而responseInterceptors则在响应返回前进行格式转换或内容补充。同时提供了具体的代码示例展示如何实现这些功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

主思路

在app.tsx里设定,middlewares, requestInterceptors, responseInterceptors, errorHandler

详情

很简单,在app.tsx里设定。middlewares 会比较复杂,但可以同时处理request和response,比如写入特殊的日志。

errorHandler 就是处理错误的,可以在这里判断业务错误,配合status code和response。

requestInterceptors 是request 拦截器,在request发出前做一些处理,比如加上auth key。

responseInterceptors 是response拦截器,在response交给业务真正处理前做一些处理,比如变换格式,或者补充内容。

import type { RequestConfig } from 'umi';
import { getAuthToken } from '@/helpers/utils';

const commonProcRequest = (url: string, options: RequestOptionsInit) => {
  if (options.headers) {
    const authToken = getAuthToken();
    options.headers['X-AUTH-TOKEN'] = authToken.token;
  }
  return {
    url: url,
    options: {
      ...options,
    },
  };
};


// request setting
export const request: RequestConfig = {
  timeout: 10000,
  errorConfig: {},
  middlewares: [
    async function commonMiddleware(ctx, next) {
      // process resp
      console.log('A before');
      await next();
      console.log('A after');
    },
  ],
  requestInterceptors: [commonProcRequest],
  responseInterceptors: [],
};

参考

官方 @umijs/plugin-request

网络请求 - Ant Design Pro

useRequest: useRequest- 蚂蚁中台标准请求 Hooks - 知乎

umiRequest.post是umi-request库中的一个方法,用于发送POST请求。根据引用\[1\]中的代码示例,umiRequest.post的使用方式如下: ```javascript import umiRequest from 'umi-request'; async function postData(params) { const response = await umiRequest.post('/api/index.php?m=Index&a=userLogin', { method: 'post', data: params, requestType: 'form', }); return response; } ``` 在上述代码中,我们使用umiRequest.post方法发送了一个POST请求到指定的URL,并传递了params作为请求的参数。请求的数据类型被设置为form。 请注意,上述代码只是一个示例,实际使用时需要根据具体的需求和接口文档进行相应的配置和参数传递。 #### 引用[.reference_title] - *1* [umi request post请求参数](https://blog.csdn.net/wangyingjie290107/article/details/88952395)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [umi-request 网络请求(基于React)](https://blog.csdn.net/weixin_49866029/article/details/122981854)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [「RESTful API」 GET POST 区别 umirequest 请求为什么 get 时要用 params,post 时要用 data](https://blog.csdn.net/Constantiny/article/details/130866509)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值