onRequest method

  1. @override
void onRequest(
  1. RequestOptions options,
  2. RequestInterceptorHandler handler
)

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);
}