您现在的位置是:首页 >其他 >flutter不能抓包网站首页其他
flutter不能抓包
简介flutter不能抓包
需要获取手机IP地址设置才能抓包,获取IP地址,需要跟原生通讯获取,
1:获取IP地址
安卓代码:
/**
* 原生和flutter通讯交互
*/
class MainActivity : FlutterActivity() {
var methodChannel: MethodChannel? = null
override fun configureFlutterEngine(flutterEngine: FlutterEngine) {
super.configureFlutterEngine(flutterEngine)
methodChannel = MethodChannel(flutterEngine.dartExecutor.binaryMessenger, "channelName")
methodChannel!!.setMethodCallHandler { call: MethodCall, result: MethodChannel.Result ->
//判断方法名是否支持
if (call.method == "getProxy") {
result.success(getProxy())
} else {
//方法名暂不支持
result.notImplemented()
}
}
}
/**
* 获取代理
*/
private fun getProxy(): String {
val proxyAddress = System.getProperty("http.proxyHost", "")
val portStr = System.getProperty("http.proxyPort", "")
return "$proxyAddress:$portStr"
}
}
flutter代码:
getProxyUrl() async {
const platform = MethodChannel("channelName");
String result = await platform.invokeMethod("getProxy");
debugPrint('----------result $result');
return result;
}
2:设置IP
void _switchProxy(bool enable, String? proxy) {
/// 设置代理仅在启动的时候生效,所以仅设置开启即可,无需设置关闭,默认就是不开启代理
if (!enable) {
return;
}
if (proxy == null || proxy.isEmpty || proxy == ":") {
return;
}
//https证书校验
(_dio?.httpClientAdapter as DefaultHttpClientAdapter).onHttpClientCreate =
(client) {
//非 debug 环境才配置代理
debugPrint("DioManager setProxy enable:$enable proxy:$proxy");
client.findProxy = (uri) {
return "PROXY $proxy";
};
client.badCertificateCallback =
(X509Certificate cert, String host, int port) {
//全部通过
return true;
};
_isProxyEnable = true;
return null;
};
}
//调用
String proxyUrl= await dioNetwork.getProxyUrl();
_switchProxy(kReleaseMode,proxyUrl );
风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。





U8W/U8W-Mini使用与常见问题解决
QT多线程的5种用法,通过使用线程解决UI主界面的耗时操作代码,防止界面卡死。...
stm32使用HAL库配置串口中断收发数据(保姆级教程)
分享几个国内免费的ChatGPT镜像网址(亲测有效)
Allegro16.6差分等长设置及走线总结