ASIHTTPRequest和AFNetworking绕过代理软件Charles的方法

ASIHTTPRequest

在ASIHTTPRequest.m文件中的startRequest方法(1180行左右):

//
// Handle proxy settings
//

if (0) {
//if ([self proxyHost] && [self proxyPort]) {
// 这段代码不执行,不会使用系统默认的代理设置,能绕过Charles
  NSString *hostKey;
  NSString *portKey;

  if (![self proxyType]) {
   [self setProxyType:(NSString *)kCFProxyTypeHTTP];
  }

  if ([[self proxyType] isEqualToString:(NSString *)kCFProxyTypeSOCKS]) {
   hostKey = (NSString *)kCFStreamPropertySOCKSProxyHost;
   portKey = (NSString *)kCFStreamPropertySOCKSProxyPort;
  } else {
   hostKey = (NSString *)kCFStreamPropertyHTTPProxyHost;
   portKey = (NSString *)kCFStreamPropertyHTTPProxyPort;
   if ([[[[self url] scheme] lowercaseString] isEqualToString:@"https"]) {
    hostKey = (NSString *)kCFStreamPropertyHTTPSProxyHost;
    portKey = (NSString *)kCFStreamPropertyHTTPSProxyPort;
   }
  }
  NSMutableDictionary *proxyToUse = [NSMutableDictionary dictionaryWithObjectsAndKeys:[self proxyHost],hostKey,[NSNumber numberWithInt:[self proxyPort]],portKey,nil];

  if ([[self proxyType] isEqualToString:(NSString *)kCFProxyTypeSOCKS]) {
   CFReadStreamSetProperty((CFReadStreamRef)[self readStream], kCFStreamPropertySOCKSProxy, proxyToUse);
  } else {
   CFReadStreamSetProperty((CFReadStreamRef)[self readStream], kCFStreamPropertyHTTPProxy, proxyToUse);
  }
 }

AFNetworking


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容