Hprose 是PHPrpc的升级版本,支持Https调用;

下面给出Android 调用的方式和 Hprose-java的下载地址。


/** * hprose *  * @return * @throws IOException * @throws NoSuchAlgorithmException * @throws KeyManagementException */public static String hprose(String jsonString) throws IOException {HproseHttpClient client = new HproseHttpClient();NetHelper(client);client.useService("https://192.168.0.250:8443/Hello");String result = (String) client.invoke("sayHello",new Object[] { "Hprose" });Log.d("HPROSE", "resut: " + result);return result;}private static void NetHelper(HproseHttpClient client) {X509HostnameVerifier hostnameVerifier = SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER;SSLContext sslContext = null;try {MyX509TrustManager mtm = new MyX509TrustManager();TrustManager[] tms = new TrustManager[] { mtm };// 初始化X509TrustManager中的SSLContextsslContext = SSLContext.getInstance("TLS");sslContext.init(null, tms, new java.security.SecureRandom());} catch (Exception e) {e.printStackTrace();}// 为javax.net.ssl.HttpsURLConnection设置默认的SocketFactory和HostnameVerifierif (sslContext != null) {// client.setDefaultSSLSocketFactory(sslContext// .getSocketFactory());client.setSSLSocketFactory(sslContext.getSocketFactory());}// client.setDefaultHostnameVerifier(hostnameVerifier);client.setHostnameVerifier(hostnameVerifier);}public static class MyX509TrustManager implements X509TrustManager {X509TrustManager myJSSEX509TrustManager = null;public MyX509TrustManager() throws Exception {KeyStore ks = KeyStore.getInstance("BKS");// ks.load(new FileInputStream("trustedCerts"),// "passphrase".toCharArray()); //---->// 这是加载自己的数字签名证书文件和密码,在这里这里没有,所以不需要TrustManagerFactory tmf = TrustManagerFactory.getInstance("X509");tmf.init(ks);TrustManager tms[] = tmf.getTrustManagers();for (int i = 0; i < tms.length; i++) {if (tms[i] instanceof X509TrustManager) {myJSSEX509TrustManager = (X509TrustManager) tms[i];return;}}}@Overridepublic void checkClientTrusted(X509Certificate[] arg0, String arg1)throws CertificateException {// sunJSSEX509TrustManager.checkClientTrusted(arg0, arg1);}@Overridepublic void checkServerTrusted(X509Certificate[] arg0, String arg1)throws CertificateException {// sunJSSEX509TrustManager.checkServerTrusted(arg0, arg1);}@Overridepublic X509Certificate[] getAcceptedIssuers() {// X509Certificate[] acceptedIssuers = sunJSSEX509TrustManager// .getAcceptedIssuers();// return acceptedIssuers;return null;}}


参考资料: http://blog.csdn.net/sgz_china/article/details/7198889


Hprose-java下载地址:https://github.com/hprose/hprose-java

更多相关文章

  1. Android framework学习参考资料
  2. Android 初始化ini.rc中启动zygote服务
  3. windows下命令行编译android工程 javac Apk数字签名
  4. android 程序初始化界面.. .
  5. android中的类加载和静态成员变量的初始化
  6. Android在初始化时弹出popwindow的方法 .
  7. Android数字签名解析(三)

随机推荐

  1. Github - trending/android
  2. 判断http请求是来自手机还是PC
  3. android 使用google钱包 步骤
  4. Android调用系统摄像头--使用MediaRecord
  5. android Dialog 例子
  6. Android(安卓)编译过程分析(1)
  7. android的ListView做表格添加圆角边框
  8. android LruCache内存缓存源码解析
  9. Android中使用ormlite
  10. RecyclerView导入依赖包