2

知道我的应用程序的解决方法是什么。我的应用程序在我们的服务器使用 TLS 1.2 之前运行良好,在我们升级到 TLS 1.3 后,所有 HttpClient POST 和 GET 请求都不起作用并出现异常

内部异常

Javax.Net.Ssl.SSLProtocolException: SSL handshake aborted: ssl=0xcb444f08: Failure in SSL library, usually a protocol error
error:1000042e:SSL routines:OPENSSL_internal:TLSV1_ALERT_PROTOCOL_VERSION (external/boringssl/src/ssl/tls_record.cc:592 0xcb172b48:0x00000001)
  --- End of managed Javax.Net.Ssl.SSLProtocolException stack trace ---
javax.net.ssl.SSLProtocolException: SSL handshake aborted: ssl=0xcb444f08: Failure in SSL library, usually a protocol error
error:1000042e:SSL routines:OPENSSL_internal:TLSV1_ALERT_PROTOCOL_VERSION (external/boringssl/src/ssl/tls_record.cc:592 0xcb172b48:0x00000001)
    at com.android.org.conscrypt.NativeCrypto.SSL_do_handshake(Native Method)
    at com.android.org.conscrypt.NativeSsl.doHandshake(NativeSsl.java:375)
    at com.android.org.conscrypt.ConscryptFileDescriptorSocket.startHandshake(ConscryptFileDescriptorSocket.java:224)
    at com.android.okhttp.internal.io.RealConnection.connectTls(RealConnection.java:192)
    at com.android.okhttp.internal.io.RealConnection.connectSocket(RealConnection.java:149)
    at com.android.okhttp.internal.io.RealConnection.connect(RealConnection.java:112)
    at com.android.okhttp.internal.http.StreamAllocation.findConnection(StreamAllocation.java:184)
    at com.android.okhttp.internal.http.StreamAllocation.findHealthyConnection(StreamAllocation.java:126)
    at com.android.okhttp.internal.http.StreamAllocation.newStream(StreamAllocation.java:95)
    at com.android.okhttp.internal.http.HttpEngine.connect(HttpEngine.java:281)
    at com.android.okhttp.internal.http.HttpEngine.sendRequest(HttpEngine.java:224)
    at com.android.okhttp.internal.huc.HttpURLConnectionImpl.execute(HttpURLConnectionImpl.java:461)
    at com.android.okhttp.internal.huc.HttpURLConnectionImpl.connect(HttpURLConnectionImpl.java:127)
    at com.android.okhttp.internal.huc.DelegatingHttpsURLConnection.connect(DelegatingHttpsURLConnection.java:89)
    at com.android.okhttp.internal.huc.HttpsURLConnectionImpl.connect(HttpsURLConnectionImpl.java:26)

下图是我使用的高级 Android Option 配置。 在此处输入图像描述

下面的代码片段是 HttpClient 请求的 ny HttpClient 设置。

public HttpClient httpClient { get; set; }

public ApiServiceBase()
{
    this.httpClient = new HttpClient() { BaseAddress = BaseAddress };
    this.httpClient.Timeout = TimeSpan.FromSeconds(60);
    this.httpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
}

在此处输入图像描述

  • Visual Studio 社区 2019 版本 16.7.2
  • .Net 框架 4.8 版
4

0 回答 0