flutter抓包
2019-04-29 本文已影响0人
青年别来无恙
前言
老项目集成flutter以后,flutter页面网络请求使用的dio框架,发现charles无法抓取请求包
flutter抓包
查看dio文档发现需要设置代理
屏幕快照 2019-04-29 下午4.02.11.png
既然是需要设置代理,那我们很容易想到的方法是怎么获取手机系统上的代理,然后传入设置,实现native抓包和flutter抓包一致。
//自动获取手机代理
NSDictionary *proxySettings = (__bridge NSDictionary *)(CFNetworkCopySystemProxySettings());
NSArray *proxies = (__bridge NSArray *)(CFNetworkCopyProxiesForURL((__bridge CFURLRef _Nonnull)([NSURL URLWithString:portalBaseUrlStr]), (__bridge CFDictionaryRef _Nonnull)(proxySettings)));
NSDictionary *settings = [proxies firstObject];
NSString *hostName = settings[@"kCFProxyHostNameKey"];
NSString *portName = settings[@"kCFProxyPortNumberKey"];
通过以上方法获取到host及port,通过flutter plugin的形式传入。