Ksoap2 с https использует много bandwitch Как оптимизировать соединения?

Я пишу приложение, которое подключается к веб-службе https много раз, используя ksoap2, и использование данных этим приложением является высоким. Я думаю, что это высоко, потому что я делаю соединение каждый раз, когда я вызываю WS.

Есть ли способ использовать такое же соединение для моего приложения, как singleton или общий доступ к объекту HttpTransportSE?

Пример моего кода:

public boolean Call1_Example(String Param1, String Param2)
{

    SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME24);
    SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(
            SoapEnvelope.VER11);

    request.addProperty("Param1", Param1);
    request.addProperty("Param2", Param2);

    envelope.dotNet = true;
    envelope.setOutputSoapObject(request);
    HttpTransportSE androidHttpTransport = new HttpTransportSE(URL);

    Boolean resultado = false;
    Object response;

    try {


        androidHttpTransport.call(Method1_SOAP_ACTION,
                envelope);
        response = envelope.getResponse();
        resultado = Boolean.parseBoolean(response.toString());

    } catch (Exception e) {

        resultado = false;
    }

    return resultado;
}

1 ответ

Решение

Я столкнулся с той же проблемой. Мой WS всегда возвращал весь объект, который я запрашивал. Таким образом, я управляю тем, что сервер сохраняет для каждого объекта свое последнее обновленное время, используя System.currentTimeMillis() в каждом установщике.

Когда вы используете ваш WS, вы получаете ответ и сохраняете время последнего обновления. Для следующего запроса к WS вы отправите это сохраненное время.

Таким образом, сервер отправит вам только разницу. Конечно, это приводит к модификации кода вашего сервера.

Я не знаю, чистое ли это решение, но оно работает нормально. Я получил примерно одинаковое время отклика в Wi-Fi и 3G.

Вы также можете использовать gzip для сжатия сообщения.

HeaderProperty headerProperty=new HeaderProperty("Accept-Encoding", "gzip");

Вы можете увидеть образец здесь

Другие вопросы по тегам