GVKun编程网logo

javax.net.ssl.SSLHandshakeException:Web服务通信期间握手期间远程主机关闭连接

18

在这里,我们将给大家分享关于javax.net.ssl.SSLHandshakeException:Web服务通信期间握手期间远程主机关闭连接的知识,同时也会涉及到如何更有效地3、javax.net.

在这里,我们将给大家分享关于javax.net.ssl.SSLHandshakeException:Web服务通信期间握手期间远程主机关闭连接的知识,同时也会涉及到如何更有效地3、javax.net.ssl.SSLHandshakeException: Remote host closed connection during handshake 错误、Android 11的javax.net.ssl.SSLHandshakeException、java 使用post或者get请求出现 javax.net.ssl.SSLHandshakeException、javapns 推送IOS报javax.net.ssl.SSLHandshakeException: Remote host closed connection during handshake的内容。

本文目录一览:

javax.net.ssl.SSLHandshakeException:Web服务通信期间握手期间远程主机关闭连接

javax.net.ssl.SSLHandshakeException:Web服务通信期间握手期间远程主机关闭连接

我收到javax.net.ssl.SSLHandshakeException:当我尝试通过Internet对Web服务进行HTTPS发布时,握手异常期间远程主机关闭了连接。但是相同的代码可用于其他Internet托管的Web服务。我尝试了很多事情,没有任何帮助。我在这里发布了示例代码。谁能帮我解决这个问题?

public static void main(String[] args) throws Exception {    String xmlServerURL = "https://example.com/soap/WsRouter";    URL urlXMLServer = new URL(xmlServerURL);    // URLConnection supports HTTPS protocol only with JDK 1.4+     Proxy proxy = new Proxy(Proxy.Type.HTTP, new InetSocketAddress(            "xxxx.example.com", 8083));    HttpURLConnection httpsURLConnection = (HttpURLConnection) urlXMLServer            .openConnection(proxy);    httpsURLConnection.setRequestProperty("Content-Type","text/xml; charset=utf-8");    //httpsURLConnection.setDoInput(true);    httpsURLConnection.setDoOutput(true);    httpsURLConnection.setConnectTimeout(300000);    //httpsURLConnection.setIgnoreProxy(false);    httpsURLConnection.setRequestMethod("POST");     //httpsURLConnection.setHostnameVerifier(DO_NOT_VERIFY);     // send request    PrintWriter out = new PrintWriter(            httpsURLConnection.getOutputStream());    StringBuffer requestXML = new StringBuffer();    requestXML.append(getProcessWorkOrderSOAPXML());       // get list of user         out.println(requestXML.toString());     out.close();    out.flush();    System.out.println("XML Request POSTed to " + xmlServerURL + "\n");    System.out.println(requestXML.toString() + "\n");     //Thread.sleep(60000);      // read response    BufferedReader in = new BufferedReader(new InputStreamReader(             httpsURLConnection.getInputStream()));    String line;    String respXML = "";    while ((line = in.readLine()) != null) {        respXML += line;    }    in.close();    // output response    respXML = URLDecoder.decode(respXML, "UTF-8");     System.out.println("\nXML Response\n");    System.out.println(respXML);}

完整的堆栈跟踪:

Exception in thread "main" javax.net.ssl.SSLHandshakeException: Remote host closed connection during handshake       at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:946)       at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1312)       at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1339)       at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1323)       at sun.net.www.protocol.https.HttpsClient.afterConnect(HttpsClient.java:563)       at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:185)       at sun.net.www.protocol.http.HttpURLConnection.getOutputStream(HttpURLConnection.java:1091)       at sun.net.www.protocol.https.HttpsURLConnectionImpl.getOutputStream(HttpsURLConnectionImpl.java:250)       at com.labcorp.efone.vendor.TestATTConnectivity.main(TestATTConnectivity.java:43)Caused by: java.io.EOFException: SSL peer shut down incorrectly       at sun.security.ssl.InputRecord.read(InputRecord.java:482)       at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:927)       ... 8 more

实际上,这里有两种情况。当我作为独立的Java程序工作时,会遇到上述异常。但是,当我尝试在weblogic应用程序服务器中执行时,出现以下异常:任何线索可能是什么原因?

java.io.IOException: Connection closed, EOF detected    at weblogic.socket.JSSEFilterImpl.handleUnwrapResults(JSSEFilterImpl.java:637)    at weblogic.socket.JSSEFilterImpl.unwrapAndHandleResults(JSSEFilterImpl.java:515)    at weblogic.socket.JSSEFilterImpl.doHandshake(JSSEFilterImpl.java:96)    at weblogic.socket.JSSEFilterImpl.doHandshake(JSSEFilterImpl.java:75)    at weblogic.socket.JSSEFilterImpl.write(JSSEFilterImpl.java:448)    at weblogic.socket.JSSESocket$JSSEOutputStream.write(JSSESocket.java:93)    at java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:82)    at java.io.BufferedOutputStream.flush(BufferedOutputStream.java:140)    at java.io.FilterOutputStream.flush(FilterOutputStream.java:140)    at weblogic.net.http.HttpURLConnection.writeRequests(HttpURLConnection.java:192)    at weblogic.net.http.HttpURLConnection.getInputStream(HttpURLConnection.java:433)    at weblogic.net.http.SOAPHttpsURLConnection.getInputStream(SOAPHttpsURLConnection.java:37)    at com.labcorp.efone.service.impl.WorkOrderServiceImpl.processATTWorkOrder(ATTWorkOrderServiceImpl.java:86)    at com.labcorp.efone.bds.WorkOrderBusinessDelegateImpl.processATTWorkOrder(WorkOrderBusinessDelegateImpl.java:59)    at com.labcorp.efone.actions.ATTWorkOrderAction.efonePerformForward(ATTWorkOrderAction.java:41)    at com.labcorp.efone.actions.EfoneAction.efonePerformActionForward(EfoneAction.java:149)    at com.labcorp.efone.actions.EfoneAction.execute(EfoneAction.java:225)    at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:484)    at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:274)    at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)    at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:525)    at javax.servlet.http.HttpServlet.service(HttpServlet.java:751)    at javax.servlet.http.HttpServlet.service(HttpServlet.java:844)    at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:280)    at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:254)    at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:136)    at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:341)    at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:25)    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:79)    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330)    at com.labcorp.efone.security.EfoneAuthenticationFilter.doFilter(EfoneAuthenticationFilter.java:115)    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)    at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:87)    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)    at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:192)    at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:160)    at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:346)    at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:259)    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:79)    at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.wrapRun(WebAppServletContext.java:3367)    at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3333)    at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)    at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120)    at weblogic.servlet.provider.WlsSubjectHandle.run(WlsSubjectHandle.java:57)    at weblogic.servlet.internal.WebAppServletContext.doSecuredExecute(WebAppServletContext.java:2220)    at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2146)    at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2124)    at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1564)    at weblogic.servlet.provider.ContainerSupportProviderImpl$WlsRequestExecutor.run(ContainerSupportProviderImpl.java:254)    at weblogic.work.ExecuteThread.execute(ExecuteThread.java:295)    at weblogic.work.ExecuteThread.run(ExecuteThread.java:254)Exception: java.io.IOException: Connection closed, EOF detected

答案1

小编典典

Java 7默认为TLS 1.0,如果不接受该协议,则可能导致此错误。我在Tomcat应用程序和不再接受TLS 1.0连接的服务器时遇到了这个问题。我加了

-Dhttps.protocols=TLSv1.1,TLSv1.2

Java选项,并对其进行了修复。(Tomcat正在运行Java7。)

3、javax.net.ssl.SSLHandshakeException: Remote host closed connection during handshake 错误

3、javax.net.ssl.SSLHandshakeException: Remote host closed connection during handshake 错误

使用Jmeter做测试的时候,出现 javax.net.ssl.SSLHandshakeException: Remote host closed connection during handshake 错误,解决方式是修改java安装路径的文件: G:\Java\jre1.8.0_201\lib\security\java.security。把注释的 crypto.policy=unlimited 放开。
参考文档: https://blog.csdn.net/kevin_mails/article/details/82143490
http://xwiz.cn/2018-05-09-java-ssl-ciphersuite

Android 11的javax.net.ssl.SSLHandshakeException

Android 11的javax.net.ssl.SSLHandshakeException

如何解决Android 11的javax.net.ssl.SSLHandshakeException?

尝试在Android 11上使用HTTPS连接到我的服务器时,我的应用程序抛出javax.net.ssl.SSLHandshakeException错误。

可能是什么原因造成的?我正在通过CloudFlare使用完全SSL。 Android 11是否需要完整的SSL(严格)?

2020-09-12 19:21:37.131 20726-20857/? I/APP: I 09/12/2020 19:21:37:130 b7ef51e0 Net| POST request (Pull): sync.mydomain.com/rc/v1/app/login
2020-09-12 19:21:37.146 206-212/? E/android.system.suspend@1.0-service: Error opening kernel wakelock stats for: wakeup34: Permission denied
2020-09-12 19:21:37.149 206-212/? E/android.system.suspend@1.0-service: Error opening kernel wakelock stats for: wakeup35: Permission denied
2020-09-12 19:21:37.143 206-206/? W/Binder:206_2: type=1400 audit(0.0:3377): avc: denied { read } for name="wakeup34" dev="sysfs" ino=18474 scontext=u:r:system_suspend:s0 tcontext=u:object_r:sysfs:s0 tclass=dir permissive=0
2020-09-12 19:21:37.147 206-206/? W/Binder:206_2: type=1400 audit(0.0:3378): avc: denied { read } for name="wakeup35" dev="sysfs" ino=18534 scontext=u:r:system_suspend:s0 tcontext=u:object_r:sysfs:s0 tclass=dir permissive=0
2020-09-12 19:21:37.192 20726-20857/? I/APP: I 09/12/2020 19:21:37:192 b7ef51e0 SSLImplJava| SSL connect to sync.mydomain.com:443
2020-09-12 19:21:37.192 20726-20857/? I/APP: I 09/12/2020 19:21:37:192 b7ef51e0 SSLImplJava| Creating secure SSL factory
2020-09-12 19:21:37.193 20726-20857/? I/APP: I 09/12/2020 19:21:37:193 b7ef51e0 SSLImplJava| Creating TrustManager for system certificates
2020-09-12 19:21:37.193 20726-20857/? I/APP: I 09/12/2020 19:21:37:193 b7ef51e0 SSLImplJava| Loading all SSL certificates from config
2020-09-12 19:21:37.193 20726-20857/? I/APP: I 09/12/2020 19:21:37:193 b7ef51e0 SSLImplJava| SSL certificates loaded: 0
2020-09-12 19:21:37.193 20726-20857/? I/APP: I 09/12/2020 19:21:37:193 b7ef51e0 SSLImplJava| Creating TrustManager for custom certificates
2020-09-12 19:21:37.193 20726-20857/? I/APP: I 09/12/2020 19:21:37:193 b7ef51e0 SSLImplJava| clientSSLCertificate is
2020-09-12 19:21:37.195 20726-20857/? I/APP: I 09/12/2020 19:21:37:195 b7ef51e0 SSLImplJava| Secure SSL factory initialization completed
2020-09-12 19:21:37.196 20726-20857/? I/APP: E 09/12/2020 19:21:37:196 b7ef51e0 SSLImplJava| Call of "connect" Failed: SSLHandshakeException: Attempt to invoke virtual method ''void java.io.OutputStream.write(byte[],int,int)'' on a null object reference
2020-09-12 19:21:37.197 20726-20857/? W/System.err: javax.net.ssl.SSLHandshakeException: Attempt to invoke virtual method ''void java.io.OutputStream.write(byte[],int)'' on a null object reference
2020-09-12 19:21:37.197 20726-20857/? W/System.err: at com.android.org.conscrypt.SSLUtils.toSSLHandshakeException(SSLUtils.java:362)
2020-09-12 19:21:37.197 20726-20857/? W/System.err: at com.android.org.conscrypt.ConscryptEnginesocket.doHandshake(ConscryptEnginesocket.java:276)
2020-09-12 19:21:37.197 20726-20857/? W/System.err: at com.android.org.conscrypt.ConscryptEnginesocket.startHandshake(ConscryptEnginesocket.java:217)
2020-09-12 19:21:37.197 20726-20857/? W/System.err: at com.android.org.conscrypt.ConscryptEnginesocket.waitForHandshake(ConscryptEnginesocket.java:563)
2020-09-12 19:21:37.197 20726-20857/? W/System.err: at com.android.org.conscrypt.ConscryptEnginesocket.getoutputStream(ConscryptEnginesocket.java:298)
2020-09-12 19:21:37.197 20726-20857/? W/System.err: at com.rhomobile.rhodes.socket.SSLImpl.connect(SSLImpl.java:639)
2020-09-12 19:21:37.197 20726-20857/? W/System.err: Caused by: java.lang.NullPointerException: Attempt to invoke virtual method ''void java.io.OutputStream.write(byte[],int)'' on a null object reference
2020-09-12 19:21:37.197 20726-20857/? W/System.err: at com.android.org.conscrypt.ConscryptEnginesocket$SSLOutputStream.writetoSocket(ConscryptEnginesocket.java:715)
2020-09-12 19:21:37.197 20726-20857/? W/System.err: at com.android.org.conscrypt.ConscryptEnginesocket$SSLOutputStream.writeInternal(ConscryptEnginesocket.java:689)
2020-09-12 19:21:37.197 20726-20857/? W/System.err: at com.android.org.conscrypt.ConscryptEnginesocket$SSLOutputStream.access$200(ConscryptEnginesocket.java:616)
2020-09-12 19:21:37.197 20726-20857/? W/System.err: at com.android.org.conscrypt.ConscryptEnginesocket.doHandshake(ConscryptEnginesocket.java:245)
2020-09-12 19:21:37.197 20726-20857/? W/System.err: ... 4 more
2020-09-12 19:21:37.197 20726-20857/? I/APP: E 09/12/2020 19:21:37:197 b7ef51e0 Net| Operation finished with error 35: SSL connect error
2020-09-12 19:21:37.197 20726-20857/? I/APP: E 09/12/2020 19:21:37:197 b7ef51e0 Net| CURLNetRequest: METHOD = [POST] URL = [https://sync.mydomain.com/rc/v1/app/login] BODY = [{"login":"","password":"","remember_me":1}]

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

java 使用post或者get请求出现 javax.net.ssl.SSLHandshakeException

java 使用post或者get请求出现 javax.net.ssl.SSLHandshakeException

问题描述:使用Java HttpClient 请求https接口时本地环境没有,但是部署到Linux服务器上出现报错

报错内容

open-jdk版本是1.8.0_301
在调用https接口时,出现以下错误

javax.net.ssl.SSLHandshakeException: No appropriate protocol (protocol is disabled or cipher suites are inappropriate)
	at sun.security.ssl.Handshaker.activate(Handshaker.java:529)
	at sun.security.ssl.SSLSocketImpl.kickstartHandshake(SSLSocketImpl.java:1492)
	at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1361)
	at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1413)
	at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1397)

解决办法

以下提供两种解决办法

1、修改jdk配置文件

解决办法:找到jdk 1.8安装目录,

找到 安装目录 里面的lib\security 下面有个java.security。

**找到对应的SSLv3,TLSv1, TLSv1.1, 注释掉,重启项目就好了**

linux查找jdk安装目录:

which java

ls -lrt /usr/bin/java

ls -lrt /etc/alternatives/java

在这里插入图片描述

2、修改HttpClient 发包器

import org.apache.http.httpentity;
import org.apache.http.ParseException;
import org.apache.http.client.methods.*;
import org.apache.http.config.Registry;
import org.apache.http.config.RegistryBuilder;
import org.apache.http.conn.socket.ConnectionSocketFactory;
import org.apache.http.conn.socket.PlainConnectionSocketFactory;
import org.apache.http.conn.ssl.NoopHostnameVerifier;
import org.apache.http.conn.ssl.SSLConnectionSocketFactory;
import org.apache.http.conn.ssl.TrustStrategy;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClientBuilder;
import org.apache.http.impl.conn.BasicHttpClientConnectionManager;
import org.apache.http.ssl.SSLContexts;
import org.apache.http.util.EntityUtils;

import javax.net.ssl.SSLContext;
import java.io.IOException;
import java.net.URI;
import java.security.KeyManagementException;
import java.security.KeyStoreException;
import java.security.NoSuchAlgorithmException;

/**
 * @author: dwl
 * @create: 2021-06-07 10:33
 **/

public class HTTPClientImpl {
    final String HTTPS = "https";
    final String HTTP = "http";
    CloseableHttpClient httpClient;
    HTTPClientData httpClientData = new HTTPClientData();

    /**
     * 无参构造方法,创建并初始化httpClient
     */
    public HTTPClientImpl(){
        TrustStrategy acceptingTrustStrategy = (cert, authType) -> true;
        SSLContext sslContext = null;
        try {
            sslContext = SSLContexts.custom().loadTrustMaterial(null, acceptingTrustStrategy).build();
        } catch (NoSuchAlgorithmException | KeyManagementException | KeyStoreException e) {
            e.printstacktrace();
        }
        assert sslContext != null;
        SSLConnectionSocketFactory sslsf = new SSLConnectionSocketFactory(sslContext,
                NoopHostnameVerifier.INSTANCE);

        Registry<ConnectionSocketFactory> socketFactoryRegistry =
                RegistryBuilder.<ConnectionSocketFactory> create()
                        .register(HTTPS, sslsf)
                        .register(HTTP, new PlainConnectionSocketFactory())
                        .build();

        BasicHttpClientConnectionManager connectionManager =
                new BasicHttpClientConnectionManager(socketFactoryRegistry);

        // 获得Http客户端(可以理解为:你得先有一个浏览器;注意:实际上HttpClient与浏览器是不一样的)
        httpClient = HttpClientBuilder.create().setSSLSocketFactory(sslsf).setConnectionManager(connectionManager).build();
    }

    /**
     * GET请求目标URI
     * @param uri 目标URI
     */
    public HTTPClientData doGet(URI uri){
        // 创建Get请求
        HttpGet httpGet = new HttpGet(uri);

        sendRequest(httpGet);
        return httpClientData;
    }

    public HTTPClientData doPostJSON(URI uri, String jsonString){
        // 创建Post请求
        HttpPost httpPost = new HttpPost(uri);

        StringEntity entity = new StringEntity(jsonString, "UTF-8");

        // post请求是将参数放在请求体里面传过去的;这里将entity放入post请求体中
        httpPost.setEntity(entity);

        sendRequest(httpPost);
        return httpClientData;
    }

    public HTTPClientData doDelete(URI uri){
        // 创建Delete请求
        HttpDelete httpDelete = new HttpDelete(uri);

        sendRequest(httpDelete);
        return httpClientData;
    }

    public void sendRequest(HttpRequestBase httpRequest){
        // 响应模型
        CloseableHttpResponse response = null;
        try {
            // 由客户端执行(发送)Get请求
            response = httpClient.execute(httpRequest);
            // 从响应模型中获取响应实体
            httpentity responseEntity = response.getEntity();
            httpClientData.setAllHeaders(response.getAllHeaders());
            httpClientData.setStatus(response.getStatusLine());
//            System.out.println("响应包头为:" + Arrays.toString(response.getAllHeaders()));
//            System.out.println("响应状态为:" + response.getStatusLine());
            if (responseEntity != null) {
                httpClientData.setContent(EntityUtils.toString(responseEntity));
                httpClientData.setContentLength(responseEntity.getContentLength());
                httpClientData.setContentEncoding(responseEntity.getContentEncoding());
                httpClientData.setContentType(responseEntity.getContentType());
//                System.out.println("响应内容长度为:" + responseEntity.getContentLength());
//                System.out.println("响应内容为:" + EntityUtils.toString(responseEntity));
            }
        } catch (ParseException | IOException e) {
            e.printstacktrace();
        } finally {
            try {
                // 释放资源
                if (httpClient != null) {
                    httpClient.close();
                }
                if (response != null) {
                    response.close();
                }
            } catch (IOException e) {
                e.printstacktrace();
            }
        }
    }
}
import org.apache.http.Header;
import org.apache.http.StatusLine;

import java.util.Arrays;

/**
 * @author: dwl
 * @create: 2021-06-16 13:17
 **/

public class HTTPClientData {
    Header[] AllHeaders;
    StatusLine Status;
    long ContentLength;
    Header ContentEncoding;
    Header ContentType;
    String Content;

    public Header[] getAllHeaders() {
        return AllHeaders;
    }

    @Override
    public String toString() {
        return "HTTPClientData{" +
                "AllHeaders=" + Arrays.toString(AllHeaders) +
                ", Content='" + Content + '\'' +
                '}';
    }

    public void setAllHeaders(Header[] allHeaders) {
        AllHeaders = allHeaders;
    }

    public StatusLine getStatus() {
        return Status;
    }

    public void setStatus(StatusLine status) {
        Status = status;
    }

    public long getContentLength() {
        return ContentLength;
    }

    public void setContentLength(long contentLength) {
        ContentLength = contentLength;
    }

    public Header getContentEncoding() {
        return ContentEncoding;
    }

    public void setContentEncoding(Header contentEncoding) {
        ContentEncoding = contentEncoding;
    }

    public Header getContentType() {
        return ContentType;
    }

    public void setContentType(Header contentType) {
        ContentType = contentType;
    }

    public String getContent() {
        return Content;
    }

    public void setContent(String content) {
        Content = content;
    }
}

javapns 推送IOS报javax.net.ssl.SSLHandshakeException: Remote host closed connection during handshake

javapns 推送IOS报javax.net.ssl.SSLHandshakeException: Remote host closed connection during handshake

使用javapns推送IOS报SSL连接失败,是因为苹果那边禁用了SSL吗

如果禁用了 要用什么办法推送

今天关于javax.net.ssl.SSLHandshakeException:Web服务通信期间握手期间远程主机关闭连接的讲解已经结束,谢谢您的阅读,如果想了解更多关于3、javax.net.ssl.SSLHandshakeException: Remote host closed connection during handshake 错误、Android 11的javax.net.ssl.SSLHandshakeException、java 使用post或者get请求出现 javax.net.ssl.SSLHandshakeException、javapns 推送IOS报javax.net.ssl.SSLHandshakeException: Remote host closed connection during handshake的相关知识,请在本站搜索。

本文标签: