Android 使用SSL的多个客户端服务器请求

Android 使用SSL的多个客户端服务器请求,android,ssl,android-ksoap2,sslsocketfactory,Android,Ssl,Android Ksoap2,Sslsocketfactory,我有一段代码,它读取服务器证书并与服务器建立SSLSocket连接。 以下是高层代码: // Create logon request XML in SOAP SoapObject logonRq = new SoapObject(Constants.NAMESPACE, "LogonRq"); signonRQ.addProperty("UserName", username); signonRQ.addProperty("Password", passwd); try {

我有一段代码,它读取服务器证书并与服务器建立SSLSocket连接。 以下是高层代码:

// Create logon request XML in SOAP
SoapObject logonRq = new SoapObject(Constants.NAMESPACE, "LogonRq");
signonRQ.addProperty("UserName", username);
signonRQ.addProperty("Password", passwd);


try {
        HttpsTransportSE transport = new HttpsTransportSE(Constants.Host, Constants.Port, "", 500000);
        SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(org.ksoap2.SoapEnvelope.VER10);
        envelope.dotNet = true;
        envelope.setOutputSoapObject(logonRq);
        envelope.setAddAdornments(false);
        envelope.implicitTypes = true;
        transport.debug = true;

        HttpsServiceConnectionSE sc = (HttpsServiceConnectionSE) transport.getServiceConnection();
        sc.setSSLSocketFactory(GetsslContext.getSSLSocketFactory());
        transport.call(Constants.SOAP_ACTION, envelope);
        SoapObject response = (SoapObject) envelope.bodyIn;

    } catch (Exception e) {
        e.printStackTrace();
    }
现在,我的要求是接收服务器响应并发送另一个客户端请求。为此,我是否需要再次执行以下命令

HttpsTransportSE transport = new HttpsTransportSE(Constants.Host, Constants.Port, "", 500000);
    SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(org.ksoap2.SoapEnvelope.VER10);
        envelope.dotNet = true;
        envelope.setOutputSoapObject(logonRq);
        envelope.setAddAdornments(false);
        envelope.implicitTypes = true;
        transport.debug = true;

        HttpsServiceConnectionSE sc = (HttpsServiceConnectionSE) transport.getServiceConnection();
        sc.setSSLSocketFactory(GetsslContext.getSSLSocketFactory());

transport.call(Constants.SOAP_ACTION, envelope);
或者我可以简单地称之为下面的陈述吗

transport.call(Constants.SOAP_ACTION, envelope);

基本上,我如何使我的代码高效并确保我没有不必要地进行socket/HTTPS调用?

为什么不创建密钥库文件并用它来验证服务器,这是一种可行的方法simple@Diva你能举例说明一下吗?我们的服务器是一个拥有用户名和密码的服务器。是的,我想说的是,这是你想要工作的唯一方式,还是你认为可以信任你的服务器证书的其他方式?根据我的想法,我们已经读取了我们的服务器证书,然后只建立了SSL套接字。代码正在运行,我们能够从服务器获得成功的登录响应。关键是,我需要再次执行哪些代码才能进行另一次调用?我不想每次都打开新的SSL连接…然后将上面的代码作为一组常见的api编写,你需要一次又一次地编写连接