App判断系统是否开启代理(防抓包)

iOS 端:

- (void)checkHTTPEnable {
    NSDictionary * ref = (__bridge NSDictionary *)CFNetworkCopySystemProxySettings();
    BOOL enable = [[ref objectForKey:@"HTTPEnable"] boolValue];
    if (enable) {
        NSLog(@"开启了代理");
    }else {
        NSLog(@"没开代理");
    }
}

Android 端:

/*
 * 判断设备 是否使用代理上网
 */
private boolean isWifiProxy(Context context) {
    final boolean IS_ICS_OR_LATER = Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH;
    String proxyAddress;
    int proxyPort;
    if (IS_ICS_OR_LATER) {
        proxyAddress = System.getProperty("http.proxyHost");
        String portStr = System.getProperty("http.proxyPort");
        proxyPort = Integer.parseInt((portStr != null ? portStr : "-1"));
    } else {
        proxyAddress = android.net.Proxy.getHost(context);
        proxyPort = android.net.Proxy.getPort(context);
    }
    return (!TextUtils.isEmpty(proxyAddress)) && (proxyPort != -1);
}

 在网络数据请求之前,进行代理是否设置的判断。如果监听到手机系统打开了代理,我们就停止后面的数据请求操作,这样可以解决我们用户的数据不被其他不法手段获取。

### 如何使用Fiddler对Android应用执行网络流量捕获 #### 配置环境准备 为了使Fiddler能够成功捕捉来自Android设备的HTTPS流量,需确保Fiddler已安装并正常工作于Windows计算机上。开启Fiddler主界面中的“Capture Traffic”,这使得当任何应用程序尝试发送或接收HTTP(S)请求时,这些通信会被记录下来[^1]。 #### 设置代理服务器 对于Android设备而言,需要将其Wi-Fi连接配置成手动模式,并指定一个HTTP代理来指向运行着Fiddler软件的PC地址以及默认监听端口(通常是8888)。具体到不同型号手机的操作路径可能有所差异;例如荣耀V20可以通过特定菜单选项完成上述设置过程[^3]。 #### 安装信任证书 为了让Fiddler能解密并查看HTTPS加密后的数据流,必须先让Android装置接受由Fiddler生成的安全证书。通常情况下,在首次访问HTTPS网站之后,Fiddler会提示下载相应平台版本的信任根证书文件(.cer),随后按照指示导入至目标移动终端内即可实现这一点[^2]。 #### 编写自定义脚本逻辑 如果希望进一步定制化所获取的信息,则可以在FiddlerScript编辑器里编写一段简单的C#函数用于过滤感兴趣的URL或是修改响应体内容前的行为。下面给出了一段示范性的代码片段展示怎样基于`BeforeResponse`事件钩子点截获符合条件的数据包: ```csharp private void FiddlerApplication_BeforeResponse(Session oSession) { // 判断当前session URL是否满足条件 if (oSession.uriContains("example.com")) { string responseBody = oSession.GetResponseBodyAsString(); // 对responseBody做适当处理... } } ``` 这段程序允许开发者依据实际需求调整内部逻辑以适应不同的应用场景[^4]。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值