我使用的BouncyCastle的供应商和Apache的HttpClient信任的SSL证书,由Antoine豪克描述这里.
我制作的应用程序的目标是Android 1.5,并且在模拟器和运行3.0的设备上运行良好.但是,当我尝试在2.2(Galaxy S)上测试它时,会发生SSLException,"不可信服务器证书".
由于抱怨BouncyCastle本身没有错误,我假设设备没有正确地从.bks文件中读取证书.我试图在Android 2.2版上使用BouncyCastle,或者是否需要在工作3.0应用程序中进行更改?
更新
当我今天再次尝试运行该应用程序时,它第一次正常运行.我现在已经尝试了好几次了,它有时运行正常,但有时仍会得到SSLException.当发生这种情况时似乎没有任何模式 - 它可能连续几次工作然后反复失败.
我正在使用re.split()将字符串分隔为标记.目前我用作参数的模式是[^\dA-Za-z]从字符串中检索字母数字标记.
但是,我需要的是还将具有数字和字母的标记分成只有一个或另一个的标记,例如.
re.split(pattern, "my t0kens")
Run Code Online (Sandbox Code Playgroud)
会回来的["my", "t", "0", "kens"].
我猜我可能需要使用lookahead/lookbehind,但我不确定这是否真的有必要或者是否有更好的方法.
我试图使用HttpsURLConnection,然后执行PUT请求与网站建立HTTPS连接.当我尝试创建OutputStreamWriterfrom时HttpsURLConnection.getOutputStream(),抛出以下异常:
javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException:
unable to find valid certification path to requested target
Run Code Online (Sandbox Code Playgroud)
该页面刚刚获得了证书(由StartCom发布) - 我是否需要手动执行某些操作以使Java识别证书现在存在?我可以毫无困难地连接到同一网站的其他页面,但他们有不同的证书.