2016-09-27 8 views
1

Я сделал каждый шаг, описанный here на сайте Fiddler для захвата сетевых приложений моего приложения (работающих в эмуляторе). Странно, что я могу декодировать http/https, отправленные из браузера, но не https-пакеты из моего приложения. Более интересно, что запросы получают успешные ответы! Любая идея, что может быть проблемой?Скрипач захвата пакетов браузера эмулятора, но не

Я полностью укомплектован и понятия не имею, что я должен был сделать, чего не делал.

ответ

0

Первая тема, которую я нашел на форуме 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.