2016-11-06 3 views
0

Ich habe den folgenden Code, der bei der Suche nach der Website, was SSL hat. (Fehler: SecureChannelFailure (Die Authentifizierung oder Entschlüsselung fehlgeschlagen) Das SSL-Zertifikat ist gültig, wenn der Httpclient-Code aufgerufen wird direkt dort nicht erteilt Was mit meinem Code falsch istXamarin Android HttpClient Fehler bei der Verwendung von einer Klasse

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); 
     } 
    } 

Code mit No Problem

...?
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); 
    } 

Antwort

0

Dank Https with TLS 1.2 in Xamarin hier die Lösung. Nuget modernhttpclient von Paul Betts hinzufügen und unten. das innerhalb der Klasse arbeiten soll oder nicht.

  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 Das Problem ist, dass das Beispiel "inside class" nicht funktioniert, aber funktioniert, wenn der httpclient direkt aufgerufen wird. Der Zweck von "Inside Class" ist, dass ich an einem Ort zu einem anderen Handler wechseln kann, anstatt einen Fund zu machen und das gesamte Projekt zu ersetzen. – AlbertK

+0

wenn der httpclient direkt aufgerufen wird funktioniert auch nicht für mich. Verwenden Sie XFroms oder Classic? Woher nennst du diesen Code? Aktivität oder PCL? –

+0

Ich benutze Xamarin Android classic und ich lege einfach eine Klassendatei ein. – AlbertK

Verwandte Themen