java与android https,java – Https连接Android
我做一個猜測,但如果你想要一個實際的握手發生,你必須讓Android知道你的證書。如果你想只接受無論什么,然后使用這個偽代碼來獲得你需要與Apache HTTP客戶端:
SchemeRegistry schemeRegistry = new SchemeRegistry ();
schemeRegistry.register (new Scheme ("http",
PlainSocketFactory.getSocketFactory (), 80));
schemeRegistry.register (new Scheme ("https",
new CustomSSLSocketFactory (), 443));
ThreadSafeClientConnManager cm = new ThreadSafeClientConnManager (
params, schemeRegistry);
return new DefaultHttpClient (cm, params);
CustomSSLSocketFactory:
public class CustomSSLSocketFactory extends org.apache.http.conn.ssl.SSLSocketFactory
{
private SSLSocketFactory FACTORY = HttpsURLConnection.getDefaultSSLSocketFactory ();
public CustomSSLSocketFactory ()
{
super(null);
try
{
SSLContext context = SSLContext.getInstance ("TLS");
TrustManager[] tm = new TrustManager[] { new FullX509TrustManager () };
context.init (null, tm, new SecureRandom ());
FACTORY = context.getSocketFactory ();
}
catch (Exception e)
{
e.printStackTrace();
}
}
public Socket createSocket() throws IOException
{
return FACTORY.createSocket();
}
// TODO: add other methods like createSocket() and getDefaultCipherSuites().
// Hint: they all just make a call to member FACTORY
}
FullX509TrustManager是實現javax.net.ssl.X509TrustManager的類,但沒有任何方法實際執行任何工作,獲取示例here。
祝你好運!
總結
以上是生活随笔為你收集整理的java与android https,java – Https连接Android的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 《新概念模拟电路》系列电子书下载
- 下一篇: Android SDK 2.3/3.0/