我必须连接到基于REST的Web服务.
(https://someurl.com/api/lookup/jobfunction/lang/EN)
在IE或Chrome浏览器中,当我尝试访问此URL时,我获得了一个我必须信任并接受继续的证书之后我必须输入用户名和密码,然后我得到JSON响应.
同样的事情,我必须以编程方式为Android应用程序做.
尝试使用自定义EasySSLSocketFactory和EasyX509TrustManager,Didnt工作.我收到以下错误:java.security.cert.CertPathValidatorException:找不到证书路径的信任锚.
使用BKS密钥库,请注意mykeystore.bks在执行以下命令之前是一个空文件
keytool -importcert -v -trustcacerts -file "test.crt" -alias IntermediateCA -keystore "mykeystore.bks" -provider org.bouncycastle.jce.provider.BouncyCastleProvider -providerpath "bcprov-jdk15on-148.jar" -storetype BKS -storepass abcd1234
keytool -list -keystore "mykeystore.bks" -provider org.bouncycastle.jce.provider.BouncyCastleProvider -providerpath "bcprov-jdk15on-148.jar" -storetype BKS -storepass abcd1234
Run Code Online (Sandbox Code Playgroud)MyHTTPClient.java如下所示:
public class MyHttpClient extends DefaultHttpClient {
final Context context;
public MyHttpClient(Context context) {
this.context = context;
}
@Override
protected ClientConnectionManager createClientConnectionManager() {
SchemeRegistry registry = new SchemeRegistry();
registry.register(new Scheme("http", PlainSocketFactory.getSocketFactory(), 80));
// Register for port 443 our SSLSocketFactory with our keystore …Run Code Online (Sandbox Code Playgroud)