mirror of
https://github.com/wanghongenpin/proxypin.git
synced 2026-03-26 06:29:46 +08:00
33 lines
960 B
Dart
33 lines
960 B
Dart
import 'package:proxypin/network/channel/host_port.dart';
|
|
import 'package:proxypin/network/http/http.dart';
|
|
|
|
/// A Interceptor that can intercept and modify the request and response.
|
|
/// @author Hongen Wang
|
|
abstract class Interceptor {
|
|
/// The priority of the interceptor.
|
|
int get priority => 0;
|
|
|
|
Future<HostAndPort> preConnect(HostAndPort hostAndPort) async {
|
|
return hostAndPort;
|
|
}
|
|
|
|
/// Called before the request is sent to the server.
|
|
Future<HttpResponse?> execute(HttpRequest request) async {
|
|
return null;
|
|
}
|
|
|
|
/// Called before the request is sent to the server.
|
|
Future<HttpRequest?> onRequest(HttpRequest request) async {
|
|
return request;
|
|
}
|
|
|
|
/// Called after the response is received from the server.
|
|
Future<HttpResponse?> onResponse(HttpRequest request, HttpResponse response) async {
|
|
return response;
|
|
}
|
|
|
|
Future<void> onError(HttpRequest? request, dynamic error, StackTrace? stackTrace) async {
|
|
return;
|
|
}
|
|
}
|