首页 > 解决方案 > Xamarin Android 应用程序流量有时不会出现在 Charles Proxy 上

问题描述

我正在尝试在 Charles 代理中捕获 Xamarin Android 应用程序的网络流量。我最初能够看到用户登录的网络调用,但登录后我无法看到其他屏幕的调用。即使查尔斯没有显示网络调用,它也没有阻止屏幕加载。但是当我退出并重新启动应用程序时,有时我能够看到其他屏幕的网络调用。行为不一致。该应用程序使用 AndroidClientHandler 来实现 HttpClient。

请注意:- 我看到 iOS 的网络流量没有任何问题。在此处输入图像描述

标签: androidxamarinxamarin.androidcharles-proxy

解决方案


AndroidClientHandler 最近才获得代理支持https://github.com/xamarin/xamarin-android/commit/bf0704496ac5cd5df5c82822048fe07ac6923971

一个限制是默认情况下它不会选择系统代理。所以你必须自己提供它:

var handler = new AndroidClientHandler 
{
    UseProxy = true,
    Proxy = new WebProxy
    {
        Address = new Uri("http://10.0.0.2:7000")
    }
};

推荐阅读