Я использую ksoap2-android для вызова службы wcf через SSL. Я могу заставить его работать без SSL, но теперь я хочу сделать вызов через SSL, но я столкнулся с некоторыми проблемами.Не доверенный сертификат с использованием ksoap2-android
Я использую HttpsTransportSE вместо HttpTransportSE, но я получаю сообщение об ошибке: javax.net.ssl.SSLException: Не доверенный сертификат
Как я могу исправить этот сервер?
Могу ли я добавить сертификат сервера в Keystore на Android, чтобы решить эту проблему?
private static final String SOAP_ACTION = "http://example.com/Service/GetInformation";
private static final String METHOD_NAME = "GetInformation";
private static final String NAMESPACE = "http://example.com";
private static final String URL = "dev.example.com/Service.svc";
public static Result GetInformation()
{
SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME);
PropertyInfo property = new PropertyInfo();
property.name = "request";
Request request =
new Request("12", "13", "Ben");
userInformationProperty.setValue(request);
userInformationProperty.setType(request.getClass());
request.addProperty(property);
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
envelope.dotNet = true;
envelope.setOutputSoapObject(request);
envelope.addMapping(NAMESPACE, "Request",new Request().getClass());
HttpsTransportSE transport = new HttpsTransportSE(URL, 443, "", 1000);
//HttpTransportSE androidHttpTransport = new HttpTransportSE(URL);
transport.debug = true;
try
{
transport.call(SOAP_ACTION, envelope);
return Result.FromSoapResponse((SoapObject)envelope.getResponse());
}
catch (IOException e)
{
e.printStackTrace();
}
catch (XmlPullParserException e)
{
e.printStackTrace();
}
return null;
}
с использованием вашего первого решения более или менее такое же, как при использовании ssl – Rafa