Flutter

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的形式传入。

效果图

IMG_7133.jpg 1.jpg
上一篇 下一篇

猜你喜欢

热点阅读