Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ssl/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Getting System.Net.WebException:错误:运行AppXXX.Droid(一个Xamarin.Forms可移植项目)时发生SendFailure(写入标题时出错)_C#_Ssl_Xamarin.android_Xamarin.forms_Portability - Fatal编程技术网

C# Getting System.Net.WebException:错误:运行AppXXX.Droid(一个Xamarin.Forms可移植项目)时发生SendFailure(写入标题时出错)

C# Getting System.Net.WebException:错误:运行AppXXX.Droid(一个Xamarin.Forms可移植项目)时发生SendFailure(写入标题时出错),c#,ssl,xamarin.android,xamarin.forms,portability,C#,Ssl,Xamarin.android,Xamarin.forms,Portability,我已经创建了一个Xamarin.Forms便携式项目,目标是Android、iOS、UWP、Windows和WindowsPhone平台。我正在尝试使用使用System.Net.Http命名空间的HttpClient发出Http请求。应用程序正在尝试请求一些安全端点。以下是我代码的一部分: HttpClientHandler handler = new HttpClientHandler(); HttpClient httpClient = new

我已经创建了一个Xamarin.Forms便携式项目,目标是Android、iOS、UWP、Windows和WindowsPhone平台。我正在尝试使用使用System.Net.Http命名空间的HttpClient发出Http请求。应用程序正在尝试请求一些安全端点。以下是我代码的一部分:

            HttpClientHandler handler = new HttpClientHandler();
            HttpClient httpClient = new HttpClient();
            HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Post, reqUrl);


            string charset = "UTF-8";
            string contentType = "application/json";

            bool isAuthOrReg = (reqUrl.Contains("/user/xxx") ||
                                reqUrl.Contains("/user/xxx") ||
                                reqUrl.Contains("/user/xxx));

            if (isAuthOrReg)
            {
                request.Headers.Add("KEY", getKey());
                request.Headers.Add("SECRET", getSecret());
            }
            request.Headers.Add("Accept-Charset", charset);
            request.Content = new StringContent(postData, Encoding.UTF8, contentType);
            request.Content.Headers.ContentLength = postData.Length;

            HttpResponseMessage response = await httpClient.SendAsync(request);
            string serverResponse =  await response.Content.ReadAsStringAsync();
当我以Windows8.1应用程序运行该项目时,它运行良好。但是,当我把它作为Android应用程序运行时,我得到了 未处理的异常:

System.Net.WebException: Error: SendFailure (Error writing headers)"
06-16 13:59:27.012 D/Mono    ( 1702): DllImport attempting to load:    '/system/lib/liblog.so'.
06-16 13:59:27.012 D/Mono    ( 1702): DllImport loaded library '/system/lib/liblog.so'.
06-16 13:59:27.012 D/Mono    ( 1702): DllImport searching in: '/system/lib/liblog.so' ('/system/lib/liblog.so').
06-16 13:59:27.012 D/Mono    ( 1702): Searching for '__android_log_print'.
06-16 13:59:27.012 D/Mono    ( 1702): Probing '__android_log_print'.
06-16 13:59:27.012 D/Mono    ( 1702): Found as '__android_log_print'.
06-16 13:59:27.040 I/MonoDroid( 1702): UNHANDLED EXCEPTION:
06-16 13:59:27.064 I/MonoDroid( 1702): System.Net.WebException: Error:    SendFailure (Error writing headers) ---> System.Net.WebException: Error writing headers ---> System.IO.IOException: The authentication or decryption has failed. ---> Mono.Security.Protocol.Tls.TlsException: The authentication or decryption has failed.
06-16 13:59:27.065 I/MonoDroid( 1702):   at Mono.Security.Protocol.Tls.RecordProtocol.EndReceiveRecord (IAsyncResult asyncResult) [0x0003a] in /Users/builder/data/lanes/3236/ee215fc9/source/mono/mcs/class/Mono.Security/Mono.Security.Protocol.Tls/RecordProtocol.cs:430 
06-16 13:59:27.065 I/MonoDroid( 1702):   at Mono.Security.Protocol.Tls.SslClientStream.SafeEndReceiveRecord (IAsyncResult ar, Boolean ignoreEmpty) [0x00000] in /Users/builder/data/lanes/3236/ee215fc9/source/mono/mcs/class/Mono.Security/Mono.Security.Protocol.Tls/SslClientStream.cs:285 
06-16 13:59:27.065 I/MonoDroid( 1702):   at Mono.Security.Protocol.Tls.SslClientStream.NegotiateAsyncWorker (IAsyncResult result) [0x00071] in /Users/builder/data/lanes/3236/ee215fc9/source/mono/mcs/class/Mono.Security/Mono.Security.Protocol.Tls/SslClientStream.cs:447 
06-16 13:59:27.065 I/MonoDroid( 1702):   --- End of inner exception stack trace ---
在我个人看来,这是因为Android无法忽略ssl。所以,我试图通过引用

但是,我得到了同样的错误。有没有办法解决这个问题?
谢谢。

此错误的一个可能原因是服务器不允许TLS 1.0密码。例如,见。另请参阅最新Xamarin.Android发行说明中的“Native HttpClientHandler”:此错误的一个可能原因是服务器不允许TLS 1.0密码。例如,见。另请参见最新Xamarin.Android发行说明中的“原生HttpClientHandler”:
 ServicePointManager
        .ServerCertificateValidationCallback +=
        (sender, cert, chain, sslPolicyErrors) => true;