Первая тема, которую я нашел на форуме Xamarin, была Why can't Fiddler detect traffic from Xamarin apps?. Ответ установить DefaultWebProxy
:
public override void OnCreate()
{
// get IP from fiddler's internet icon at the top right, or via ipconfig for VirtualBox used by Genymotion
WebRequest.DefaultWebProxy = new WebProxy("192.168.56.1", 8888);
base.OnCreate();
...
}
Я положил его в MainActivity
, но не решить мою проблему.
Который помог мне это Debugging HttpClient Calls with fiddler in PCL:
Вам нужно будет изменить код, чтобы использовать HttpClientHandler и прокси
HttpClientHandler handler = new HttpClientHandler()
{
Proxy = new WebProxy (new Uri("http://[Computer IP]:[Fiddler port number]")),
UseProxy = true
};
using (var client = new HttpClient(handler))
{
// Make your call in here
}
Выглядит просто достаточно только PCLS DonT включают веб прокси-класса в своей связанной DLL System.Net по какой-либо причине, поэтому вам нужно будет написать свой собственный, расширив интерфейс System.Net.IWebProxy так
public class WebProxy : System.Net.IWebProxy
{
public System.Net.ICredentials Credentials
{
get;
set;
}
private readonly Uri _proxyUri;
public WebProxy(Uri proxyUri)
{
_proxyUri = proxyUri;
}
public Uri GetProxy(Uri destination)
{
return _proxyUri;
}
public bool IsBypassed(Uri host)
{
return false;
}
}
После всего этого материала, я был в состоянии захватить запросы от моего приложения Xamarin.Forms на эмуляторе Android.