第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

在 java 11 上的 SSL 通信期間發(fā)生 SocketException 時(shí)

在 java 11 上的 SSL 通信期間發(fā)生 SocketException 時(shí)

楊__羊羊 2022-12-15 16:43:23
我應(yīng)該如何實(shí)現(xiàn)它才能在 java11 上使用httpclient重試 SSL 通信?如下所示覆蓋 DefaultHttpRequestRetryHandler 是否更好?有更好的方法嗎?  public class HttpRequestRetryHandler extends DefaultHttpRequestRetryHandler {    @Override    public boolean retryRequest(IOException exception, int executionCount, HttpContext context) {      IOException cause = exception;      if (exception instanceof SSLException) {        if (exception.getCause() != null && exception.getCause() instanceof IOException) {          cause = (IOException) exception.getCause();        }      }      return super.retryRequest(cause, executionCount, context);    }  }在 Java 11 中,不會(huì)重試 SocketException,因?yàn)?SocketException 是用 SSLException 包裹的。我閱讀了以下內(nèi)容。https://bugs.openjdk.java.net/browse/JDK-8214339http://hg.openjdk.java.net/jdk-updates/jdk11u/rev/18b4acfaaa97if ((cause != null) && (cause instanceof IOException)) {    ssle = new SSLException(reason);} https://hc.apache.org/httpcomponents-client-ga/tutorial/html/fundamentals.htmlDefaultHttpRequestRetryHandler 在發(fā)生 SSLException 時(shí)不會(huì)重試。使用java11時(shí)隨機(jī)出現(xiàn)以下錯(cuò)誤,概率小于0.01%。
查看完整描述

1 回答

?
江戶川亂折騰

TA貢獻(xiàn)1851條經(jīng)驗(yàn) 獲得超5個(gè)贊

我創(chuàng)建了 HttpRequestRetryHandler 類(lèi)。


  public class HttpRequestRetryHandler extends DefaultHttpRequestRetryHandler {


    @Override

    public boolean retryRequest(IOException exception, int executionCount, HttpContext context) {

      IOException cause = exception;

      if (exception instanceof SSLException) {

        if (exception.getCause() != null && exception.getCause() instanceof IOException) {

          cause = (IOException) exception.getCause();

        }

      }

      return super.retryRequest(cause, executionCount, context);

    }

  }

并將其設(shè)置為 HttpClientBuilder。


CloseableHttpClient httpclient = HttpClients.custom()

        .setRetryHandler(new HttpRequestRetryHandler())

        .build();

結(jié)論

SSL 通信質(zhì)量與使用 java8 時(shí)相同。

服務(wù)器或網(wǎng)絡(luò)底層問(wèn)題依然存在,但java11的影響已經(jīng)解決。


查看完整回答
反對(duì) 回復(fù) 2022-12-15
  • 1 回答
  • 0 關(guān)注
  • 99 瀏覽
慕課專(zhuān)欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)