最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

java.net.SocketException:?Connection?reset異常的幾種原因分析和解決方法

 更新時間:2025年09月11日 09:07:45   作者:初夏0811  
這篇文章主要介紹了java.net.SocketException:?Connection?reset異常的幾種原因分析和解決方法,這個錯誤通常是由于連接被遠程主機關(guān)閉導(dǎo)致的,文中通過代碼介紹的非常詳細,需要的朋友可以參考下

導(dǎo)致此異常的原因,總結(jié)下來有三種情況:

一、服務(wù)器端偶爾出現(xiàn)了異常,導(dǎo)致連接關(guān)閉

解決方法: 采用出錯重試機制

二、 服務(wù)器端和客戶端使用的連接方式不一致

解決方法: 服務(wù)器端和客戶端使用相同的連接方式,即同時使用長連接或短連接

三、如果是HTTPS,那么還存在TLS版本不一致

解決方法: 服務(wù)器端和客戶端使用相同的TLS版本,我遇到的就是這種情況。

附錄:JDK中對 HTTPS 版本的支持情況:
JDK 6
SSL v3
TLS v1(默認(rèn))
TLS v1.1(JDK6 update 111 及以上)
JDK 7
SSLv3
TLS v1(默認(rèn))
TLS v1.1
TLS v1.2
JDK 8
SSL v3
TLS v1
TLS v1.1
TLS v1.2(默認(rèn))

方法一:如果客戶端JDK是1.7,服務(wù)器端要求TLSv1.2,那么在啟動參數(shù)加上-Dhttps.protocols=TLSv1.2即可。

方法二:代碼指定TLS版本 System.setProperty(“https.protocols”, “TLSv1.2”); (我是通過這種方式,加了一行代碼解決的)

方法三:可以用以下工具類方法解決:

public class HttpClientFactory {
    private static CloseableHttpClient client;

    public static HttpClient getHttpsClient() throws Exception {

        if (client != null) {
            return client;
        }
        SSLContext sslcontext = SSLContexts.custom().useSSL().build();
        sslcontext.init(null, new X509TrustManager[]{new HttpsTrustManager()}, new SecureRandom());
        SSLConnectionSocketFactory factory = new SSLConnectionSocketFactory(sslcontext,new String[] { "SSLv3", "TLSv1", "TLSv1.1", "TLSv1.2" }, null,
                SSLConnectionSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER);
        client = HttpClients.custom().setSSLSocketFactory(factory).build();

        return client;
    }

    public static void releaseInstance() {
        client = null;
    }
}

public class HttpsTrustManager implements X509TrustManager {

    @Override
    public void checkClientTrusted(X509Certificate[] arg0, String arg1)
            throws CertificateException {
        // TODO Auto-generated method stub

    }

    @Override
    public void checkServerTrusted(X509Certificate[] arg0, String arg1)
            throws CertificateException {
        // TODO Auto-generated method stub

    }

    @Override
    public X509Certificate[] getAcceptedIssuers() {
        return new X509Certificate[]{};
    }

}

調(diào)用方式如下:

  HttpClient httpClient = HttpClientFactory.getHttpsClient();
    HttpPost request = new HttpPost(requestUrl);
    request.setEntity(new StringEntity(gson.toJson(requestMap), "application/json", "UTF-8"));

    HttpResponse httpResponse = httpClient.execute(request);
    resultStr = EntityUtils.toString(httpResponse.getEntity(), "UTF-8");
    System.out.println(resultStr);
    httpResponse.getEntity().getContent().close();

總結(jié) 

到此這篇關(guān)于java.net.SocketException: Connection reset異常的幾種原因分析和解決方法的文章就介紹到這了,更多相關(guān)java.net.SocketException: Connection reset異常內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • SpringBoot整合Zuul全過程

    SpringBoot整合Zuul全過程

    Zuul網(wǎng)關(guān)是微服務(wù)架構(gòu)中的重要組件,具備統(tǒng)一入口、鑒權(quán)校驗、動態(tài)路由等功能,它通過配置文件進行靈活的路由和過濾器設(shè)置,支持Hystrix進行容錯處理,還提供了限流保護和性能調(diào)優(yōu)
    2025-12-12
  • Java異常處理機制throws舉例詳解

    Java異常處理機制throws舉例詳解

    這篇文章主要介紹了Java中異常處理機制,包括finally的使用、異步處理的方式(throws)、以及手動拋出異常,finally用于確保資源釋放,throws用于聲明方法可能拋出的異常,由調(diào)用者處理,手動拋出異常則是在特定條件下主動拋出異常對象,需要的朋友可以參考下
    2024-11-11
  • springKafka生產(chǎn)者、消費者,數(shù)據(jù)發(fā)送/接收方式

    springKafka生產(chǎn)者、消費者,數(shù)據(jù)發(fā)送/接收方式

    這篇文章主要介紹了springKafka生產(chǎn)者、消費者,數(shù)據(jù)發(fā)送/接收方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2025-09-09
  • Java中LambdaQueryWrapper的常用方法詳解

    Java中LambdaQueryWrapper的常用方法詳解

    這篇文章主要給大家介紹了關(guān)于Java中LambdaQueryWrapper常用方法的相關(guān)資料,lambdaquerywrapper是一個Java庫,用于構(gòu)建類型安全的Lambda表達式查詢,需要的朋友可以參考下
    2023-11-11
  • SpringBoot詳細列舉常用注解的說明

    SpringBoot詳細列舉常用注解的說明

    在開發(fā)SpringBoot程序的過程中,有可能與其他業(yè)務(wù)系統(tǒng)進行對接開發(fā),獲取封裝公共的API接口等等,下面這篇文章主要給大家介紹了關(guān)于SpringBoot常見的注解的相關(guān)資料,需要的朋友可以參考下
    2022-06-06
  • Spring超出最大會話數(shù)(Max?sessions?limit?reached:?10000)

    Spring超出最大會話數(shù)(Max?sessions?limit?reached:?10000)

    在Spring系統(tǒng)中遇到的Maxsessionslimitreached:10000錯誤,該錯誤由于會話數(shù)超過默認(rèn)限制10000而觸發(fā),下面就來介紹一下解決方法,感興趣的可以了解一下
    2024-12-12
  • SpringBoot從yml配置文件中讀常用參數(shù)值實例方法

    SpringBoot從yml配置文件中讀常用參數(shù)值實例方法

    在本篇文章里小編給大家整理了關(guān)于SpringBoot從yml配置文件中讀常用參數(shù)值實例方法,有需要的朋友們學(xué)習(xí)下。
    2019-12-12
  • SpringBoot中使用多線程的方法示例

    SpringBoot中使用多線程的方法示例

    這篇文章主要介紹了SpringBoot中使用多線程的方法示例,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03
  • Springboot+aop實現(xiàn)配置多數(shù)據(jù)源的示例代碼

    Springboot+aop實現(xiàn)配置多數(shù)據(jù)源的示例代碼

    本文介紹了如何使用SpringAOP和注解實現(xiàn)動態(tài)數(shù)據(jù)源切換,通過自定義注解和ThreadLocal存儲數(shù)據(jù)上下文信息,重寫AbstractRoutingDataSource類并使用自定義切面來實現(xiàn)動態(tài)數(shù)據(jù)源的切換,感興趣的可以了解一下
    2024-11-11
  • K8S(Docker)如何優(yōu)雅的關(guān)閉SpringBoot微服務(wù)

    K8S(Docker)如何優(yōu)雅的關(guān)閉SpringBoot微服務(wù)

    這篇文章主要介紹了K8S(Docker)如何優(yōu)雅的關(guān)閉SpringBoot微服務(wù)問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2025-01-01

最新評論

陆良县| 东阳市| 萨嘎县| 东乡县| 武定县| 清河县| 南开区| 塔城市| 左权县| 新竹市| 城市| 基隆市| 咸阳市| 天水市| 泽库县| 阜康市| 犍为县| 如皋市| 桃园县| 汉川市| 徐州市| 会宁县| 光山县| 汾阳市| 罗江县| 河津市| 双流县| 开远市| 易门县| 东明县| 鄯善县| 始兴县| 云林县| 德惠市| 龙门县| 和政县| 宁阳县| 华蓥市| 福海县| 任丘市| 平和县|