2 using System.Reflection;
4 namespace System.Net.Http {
5 public partial class HttpClient {
8 : this (GetDefaultHandler (), true)
12 static HttpMessageHandler GetDefaultHandler ()
14 Type type = Type.GetType("Android.Runtime.AndroidEnvironment, Mono.Android");
16 return GetFallback ("Invalid Mono.Android assembly? Cannot find Android.Runtime.AndroidEnvironment");
18 MethodInfo method = type.GetMethod ("GetHttpMessageHandler", BindingFlags.Static | BindingFlags.NonPublic);
20 return GetFallback ("Your Xamarin.Android version does not support obtaining of the custom HttpClientHandler");
22 object ret = method.Invoke (null, null);
24 return GetFallback ("Xamarin.Android returned no custom HttpClientHandler");
26 var handler = ret as HttpMessageHandler;
28 return GetFallback ($"{ret?.GetType()} is not a valid HttpMessageHandler");
32 static HttpMessageHandler GetFallback (string message)
34 Console.WriteLine (message + ". Defaulting to System.Net.Http.HttpClientHandler");
35 return new HttpClientHandler ();