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

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

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

導致此異常的原因,總結下來有三種情況:

一、服務器端偶爾出現(xiàn)了異常,導致連接關閉

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

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

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

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

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

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

方法一:如果客戶端JDK是1.7,服務器端要求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[]{};
    }

}

調用方式如下:

  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();

總結 

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

相關文章

  • SpringBoot整合Zuul全過程

    SpringBoot整合Zuul全過程

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

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

    這篇文章主要介紹了Java中異常處理機制,包括finally的使用、異步處理的方式(throws)、以及手動拋出異常,finally用于確保資源釋放,throws用于聲明方法可能拋出的異常,由調用者處理,手動拋出異常則是在特定條件下主動拋出異常對象,需要的朋友可以參考下
    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的常用方法詳解

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

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

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

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

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

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

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

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

    這篇文章主要介紹了SpringBoot中使用多線程的方法示例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    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)雅的關閉SpringBoot微服務

    K8S(Docker)如何優(yōu)雅的關閉SpringBoot微服務

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

最新評論

蒲江县| 呼伦贝尔市| 乃东县| 南丹县| 繁昌县| 稷山县| 黄平县| 巴彦淖尔市| 壶关县| 资溪县| 香港| 定日县| 江门市| 迁安市| 红安县| 万全县| 虹口区| 安溪县| 卢湾区| 靖安县| 城固县| 苗栗市| 赣榆县| 错那县| 大兴区| 健康| 五大连池市| 金寨县| 广州市| 百色市| 东方市| 望城县| 彝良县| 富阳市| 江都市| 正镶白旗| 扎鲁特旗| 濮阳县| 资溪县| 高邑县| 张掖市|