Httpclient Xamarin Forms 调用在 Android 中不起作用

Ali*_*123 4 httpclient xamarin.android xamarin.forms

在 android 物理设备中调试 xamarin 表单应用程序时,我遇到了一个奇怪的问题。

该应用程序进入中断模式,这是我收到的输出:

  Mono.Android[0xd6be8960] -> System[0xd6be9680]: 14
    11-24 23:44:44.098 I/Choreographer(18685): Skipped 930 frames!  The application may be doing too much work on its main thread.
    Thread started: <Thread Pool> #8
    Thread started: <Thread Pool> #9
    11-24 23:44:44.807 D/Mono    (18685): Assembly Ref addref Mono.Security[0xc17989e0] -> System[0xd6be9680]: 15
    Thread started: <Thread Pool> #10
    An unhandled exception occured.
Run Code Online (Sandbox Code Playgroud)

我尝试了许多解决方案,例如允许应用程序中的网络访问,确保所有需要的包都在那里,例如:

Microsoft.Bcl.Build
Microsoft.net.HTTP
Newtonsoft.json
Run Code Online (Sandbox Code Playgroud)

这是我在 UWP 中运行良好的代码 var request = new HttpRequestMessage();

    request.RequestUri = new Uri("https://jsonplaceholder.typicode.com/users");
    request.Method = HttpMethod.Get;

    request.Headers.Add("Accept", "application/json");
    var client = new HttpClient();
    HttpResponseMessage response = await client.SendAsync(request);
    HttpContent content = response.Content;
    var statusCode = response.StatusCode;
    var json = await content.ReadAsStringAsync();
Run Code Online (Sandbox Code Playgroud)

编辑:我在设备日志中收到 2 个主要错误:

[ERROR] FATAL UNHANDED EXCEPTION: System.Net.HttpRequestException:An error occurred while sending the request --> System.Net.WebException:Error:SecureChannelFailure(The authentication or decryption has failed)
Run Code Online (Sandbox Code Playgroud)

小智 5

更改 Xamarin.Android 中的默认 SSL/TLS 实现。

转到 Android 项目设置->Android 选项->高级->SSL/TLS 实现并将其设置为Native TLS 1.2+

在此处输入图片说明