onRequest method
Called when the request is about to be sent.
Implementation
@override
void onRequest(RequestOptions options, RequestInterceptorHandler handler) {
final mockManager = MockManager();
if (mockManager.isEnabled) {
// 提取查询参数和请求数据
final queryParameters = options.queryParameters.cast<String, dynamic>();
final requestData = options.data;
final mockData = mockManager.getMockData(
options.method,
options.path,
queryParameters,
requestData,
);
if (mockData != null) {
// 获取响应数据(可能是动态生成的)
final responseData = mockData.getData(
options.method,
options.path,
queryParameters,
requestData,
);
// 创建Mock响应
final response = Response(
requestOptions: options,
statusCode: mockData.statusCode,
data: responseData,
);
// 如果有延迟,异步执行
if (mockData.delay != null) {
Future.delayed(mockData.delay!, () {
handler.resolve(response);
});
} else {
handler.resolve(response);
}
return;
}
}
super.onRequest(options, handler);
}