onRequest method
Called when the request is about to be sent.
Implementation
@override
void onRequest(RequestOptions options, RequestInterceptorHandler handler) async {
options.contentType = Headers.formUrlEncodedContentType;
//referer
options.headers[HttpHeaders.refererHeader] = defaultHost;
//获取realIp
String? ip = options.extra['realIp'];
if (ip != null) {
options.headers[realIp] = ip;
}
options.headers[HttpHeaders.userAgentHeader] = getUserAgent(options.extra['userAgent']);
var cookies = await getCookies(host: options.uri);
// var cookiesSb = StringBuffer(CookieManager.getCookies(cookies));
// options.extra['cookies'].forEach((key, value) {
// cookiesSb.write(' ;${Uri.encodeComponent(key)}=${Uri.encodeComponent(value)}');
// });
// options.headers[HttpHeaders.cookieHeader] = cookiesSb.toString();
// options.extra['cookiesHash'] = await loadCookiesHash(cookies: cookies);
switch (options.extra['encryptType']) {
case EncryptType.linuxForward:
_handleLinuxForward(options);
break;
case EncryptType.weApi:
_handleWeApi(options);
break;
case EncryptType.eApi:
_handleEApi(options, cookies);
break;
}
options.extra['hookRequestDataSuccess'] = true;
handler.next(options);
}