2016-11-06 3 views
0

У меня есть следующий код, который вызывает ошибки при переходе на сайт с тем, что имеет SSL. (Ошибка: SecureChannelFailure (Аутентификация или дешифрование не удалось) Их SSL сертификат действителен Когда код HttpClient вызывается непосредственно там не выдают Что случилось с моим кодомXamarin Android HttpClient Ошибка при использовании класса

Uri uri =new Uri("https://jsonplaceholder.typicode.com/posts/1"); 
    using (HttpClient httpclient = new HttpClientClass()) 
    { 
     var tt = await httpclient.GetAsync(uri); 
     string tx = await tt.Content.ReadAsStringAsync(); 
     Log.Info(TAG, tx); 
    } 




public class HttpClientClass : HttpClient 
    { 
    private HttpClient _httpclient = null; 
    private HttpClientHandler messagehandler = new Xamarin.Android.Net.AndroidClientHandler(); 

    public HttpClientClass() 
    { 
     _httpclient = new HttpClient(messagehandler); 
     } 
    } 

код без проблем

...?
Uri uri =new Uri("https://jsonplaceholder.typicode.com/posts/1"); 
    using (HttpClient httpclient = new HttpClient()) 
    { 
     var tt = await httpclient.GetAsync(uri); 
     string tx = await tt.Content.ReadAsStringAsync(); 
     Log.Info(TAG, tx); 
    } 

ответ

0

Https with TLS 1.2 in Xamarin Благодаря вот решение. Добавить NuGet modernhttpclient Пол Беттс и использовать ниже. это должно работать в классе или нет.

  Uri uri = new Uri("https://jsonplaceholder.typicode.com/posts/1"); 
      using (var httpClient = new HttpClient(new NativeMessageHandler())) 
      { 
       var tt = await httpClient.GetAsync(uri); 
       string tx = await tt.Content.ReadAsStringAsync(); 
       //Log.Info(TAG, tx); 
      } 
+0

Th e проблема заключается в том, что пример «внутри класса» не работает, но работает, когда HTTP-клиент вызывается напрямую. Цель «внутри класса» заключается в том, чтобы я мог перейти на другой обработчик в одном месте, а затем выполнять поиск и заменять весь проект. – AlbertK

+0

, когда вызываемый httpclient напрямую не работает для меня. Вы используете XFroms или Classic? Откуда вы называете этот код? Активность или PCL? –

+0

Я использую Xamarin Android classic, и я просто поместил в файл класса. – AlbertK

Смежные вопросы