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

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

Link: