android 使用ksoap2 访问webservice时,若访问的是https,报https javax.net.ssl.SSLHandshakeException: java.security.cert.CertPathValidatorException

解决方案:

SsX509TrustManager.allowAllSSL();

具体如下:

public static String getWebServiceResult(String nameSpace,

String methodName, String endPoint, String soapAction,

LinkedHashMap params) {


// 指定WebService的命名空间和调用的方法名

SoapObject rpc = new SoapObject(nameSpace, methodName);


// 设置需调用WebService接口需要传入的两个参数mobileCode、userId

for (String key : params.keySet()) {

System.out.println("Key = " + key + ", Value = " + params.get(key));

rpc.addProperty(key, params.get(key));

}


// 生成调用WebService方法的SOAP请求信息,并指定SOAP的版本

SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER10);


envelope.bodyOut = rpc;

// 设置是否调用的是dotNet开发的WebService

envelope.dotNet = false;


// 等价于envelope.bodyOut = rpc;

envelope.setOutputSoapObject(rpc);

HttpTransportSE transport = new HttpTransportSE(endPoint);

SsX509TrustManager.allowAllSSL();//关键点-------------

String result = null;

try {

// transport.debug = true;

// 调用WebService

transport.call(soapAction, envelope);

// 获取返回的数据

SoapObject object = (SoapObject) envelope.bodyIn;

// 获取返回的结果

result = object.getProperty(0).toString();


} catch (Exception e) {

// e.printStackTrace();

if (e.toString().contains("ConnectException")) {

result = "ConnectException";

}

}

return result;

}


更多相关文章

  1. Android 设置默认锁屏壁纸接口
  2. (android 实战总结)android对html支持接口总结
  3. 第三部分:Android 应用程序接口指南---第一节:应用程序组件---第五
  4. Android 无线接口层RIL
  5. android对html支持接口总结
  6. Android 匿名共享内存Java接口分析
  7. Android rest接口
  8. android 常用api 接口签名验证
  9. Android中接口的使用及类使用

随机推荐

  1. 2011.09.22(2)——— android sample之Cont
  2. Android(安卓)多屏适配解决方案
  3. Android(安卓)RadioGroup动态添加RadioBu
  4. android TextInputLayout 更换系统自带眼
  5. android重试执行
  6. 【Android】解决ScrollView中嵌套EditTex
  7. Android(安卓)各个版本对应的版本号及API
  8. android中volley框架实现图片加载
  9. Android的权限机制、通知
  10. 关于Android端和iOS端的二维码统一处理