flutter需要通过原生获取代理地址配置才能抓包,具体步骤如下 1.安卓原生全部代码
/**
* 原生和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(ProxyPlugin().getProxy())
} else {
//方法名暂不支持
result.notImplemented()
}
}
}
/**
* 获取代理
*/
private fun getProxy(): String {
val proxyAddress = System.getProperty("http.proxyHost", "")
val portStr = System.getProperty("http.proxyPort", "")
return "$proxyAddress:$portStr"
}
}
2.flutter部分代码
getProxyUrl() async {
const platform = MethodChannel("channelName");
String result = await platform.invokeMethod("getProxy");
return result;
}
//设置网络
DioNetwork dioNetwork = DioNetwork.internal();
//设置可以抓包
String url = await dioNetwork.getProxyUrl();
dioNetwork.setProxy(kReleaseMode, url);
配置完就可以抓包了。