Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/188.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android SSLPeerUnverifiedException->;在无限循环中调用HostnameVerifier.verify()_Android_Android Ksoap2_Httpsurlconnection_Httptransportse_Android Httptransport - Fatal编程技术网

Android SSLPeerUnverifiedException->;在无限循环中调用HostnameVerifier.verify()

Android SSLPeerUnverifiedException->;在无限循环中调用HostnameVerifier.verify(),android,android-ksoap2,httpsurlconnection,httptransportse,android-httptransport,Android,Android Ksoap2,Httpsurlconnection,Httptransportse,Android Httptransport,我正在尝试通过HTTPS连接和库连接到服务器,然后出现以下异常: javax.net.ssl.SSLPeerUnverifiedException: Hostname 10.XXX.X.XXX not verified: certificate: sha1/.../...= DN: C=ES,CN=*.customername.es,O=XXX XXXX S.L.U\ ,OU=IT,2.5.4.5=#XXXXXXXXX,L=[location] subjectAltNames: [*.custo

我正在尝试通过HTTPS连接和库连接到服务器,然后出现以下异常:

javax.net.ssl.SSLPeerUnverifiedException: Hostname 10.XXX.X.XXX not verified:
certificate: sha1/.../...=
DN: C=ES,CN=*.customername.es,O=XXX XXXX S.L.U\ ,OU=IT,2.5.4.5=#XXXXXXXXX,L=[location]
subjectAltNames: [*.customername.es]
然后,我尝试通过调用以下命令来设置默认的custome HostnameVerifier:

    SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
    envelope.dotNet = true;
    envelope.setOutputSoapObject(request);
    //HttpTransportSE androidHttpTransport = crearhttptransport();
    HttpsTransportSE androidHttpsTransport = new HttpsTransportSE("10.XXX.X.XXX", 443, "/demo/webservice.asmx", MILLISECONDS_TIME_OUT);

    if (androidHttpsTransport != null) {

        //FakeX509TrustManager.allowAllSSL()
        HttpsURLConnection.setDefaultHostnameVerifier(new HostnameVerifier() {

            @Override
            public boolean verify(final String hostname, final SSLSession session) {
                HostnameVerifier hv = HttpsURLConnection.getDefaultHostnameVerifier();
                return hv.verify("10.XXX.X.XXX", session);
                //return hv.verify("*.customername.es", session);
            }
        });
        androidHttpsTransport.call(NAMESPACE + request.getName(), envelope, generateHeaders());
        return envelope.bodyIn != null ? (SoapObject) envelope.bodyIn : null;
    }
但是我得到了一个StackOverFlowException,因为verify(…)方法进入一个循环,它被无限次调用:

E/AndroidRuntime: FATAL EXCEPTION: AsyncTask #3
Process: myapp.androidv2, PID: 32471
java.lang.RuntimeException: An error occurred while executing doInBackground()
    at android.os.AsyncTask$4.done(AsyncTask.java:399)
    at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:383)
    at java.util.concurrent.FutureTask.setException(FutureTask.java:252)
    at java.util.concurrent.FutureTask.run(FutureTask.java:271)
    at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:289)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
    at java.lang.Thread.run(Thread.java:919)
 Caused by: java.lang.StackOverflowError: stack size 1039KB
    at myapp.androidv2.resourceaccess.WSManager$1.verify(WSManager.java:209)
    at myapp.androidv2.resourceaccess.WSManager$1.verify(WSManager.java:211)
    at myapp.androidv2.resourceaccess.WSManager$1.verify(WSManager.java:211)
    at myapp.androidv2.resourceaccess.WSManager$1.verify(WSManager.java:211)
    at myapp.androidv2.resourceaccess.WSManager$1.verify(WSManager.java:211)
...)
您还可以看到一个已注释的FakeX509TrustManager.allowAllSSL(),正如他们所说,我也尝试使用它,但它最终会出现相同的循环错误