Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/348.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
Java 发送Base64位图并间歇获取ProtocolException_Java_Android_Exception_Mobile_Sslhandshakeexception - Fatal编程技术网

Java 发送Base64位图并间歇获取ProtocolException

Java 发送Base64位图并间歇获取ProtocolException,java,android,exception,mobile,sslhandshakeexception,Java,Android,Exception,Mobile,Sslhandshakeexception,我已经构建了一个Android应用程序,我正在使用它向我们的服务器发送一张相机拍摄的图像。我使用以下代码将位图转换为Base64字符串视图: ByteArrayOutputStream byteArrayOS = new ByteArrayOutputStream(); bitmap.compress(Bitmap.CompressFormat.JPEG, 100, byteArrayOS); return Base64.encodeToString(byteArrayOS.toByteArra

我已经构建了一个Android应用程序,我正在使用它向我们的服务器发送一张相机拍摄的图像。我使用以下代码将位图转换为Base64字符串视图:

ByteArrayOutputStream byteArrayOS = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.JPEG, 100, byteArrayOS);
return Base64.encodeToString(byteArrayOS.toByteArray(), Base64.DEFAULT);
现在我实际上遇到了一些问题,其中一个是我会间歇性地得到一个SSLHandshakeException,但它不是每次都发生,所以我非常困惑,我尝试了许多不同的角度来解决这个问题,从StackOverflow可能的解决方案,但似乎没有任何效果

确切的例外是

javax.net.ssl.SSLHandshakeException: javax.net.ssl.SSLProtocolException: SSL handshake aborted: ssl=0x601201b8: Failure in SSL library, usually a protocol error
错误:14077410:SSL例程:SSL23\u GET\u SERVER\u HELLO:sslv3警报握手失败(外部/openssl/SSL/s23\u clnt.c:742 0x5d066d74:0x00000000)

有时它似乎确实有效,但我无法确定是什么因素让它起作用还是不起作用。我还认为在某个时候可能会出现超时问题,所以我将HttpsURLConnection的超时限制设置为任意大的数字,例如

        secureConnection = (HttpsURLConnection) url.openConnection();
        secureConnection.setConnectTimeout(100000);
        HttpURLConnection.setFollowRedirects(false);
        secureConnection.setRequestMethod(requestType.toString());
        secureConnection.setRequestProperty("Content-Type", contentType.toString());
        secureConnection.setConnectTimeout(3000);
        secureConnection.setReadTimeout(3000);
        secureConnection.setDoInput(true);
        secureConnection.setDoOutput(true);
我尝试的另一个解决方案是尝试接受所有证书,以防我的设备拒绝服务器证书


其他一些信息是,我正在安卓4.4设备上测试,并使用最新的安卓Studio版本。如果这是持续发生的事情,我会确切地知道什么是错误的,但它只会偶尔发生:(但这是一种痛苦,因为我无法克服它。

您是否能够将任何数据发送到服务器?例如,它有时会起作用吗?此外,您能否为整个异常提供消息和堆栈?