带有https的Ksoap2使用了大量带宽如何优化连接



我正在编写一个应用程序,该应用程序使用ksoap2多次连接到https web服务,并且该应用程序的数据使用率很高。我认为它很高,因为每次调用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;
}

我也遇到了同样的问题。我的WS总是返回我请求的整个对象。因此,我通过在每个setter中使用System.currentTimeMillis()来管理服务器为每个对象存储其上次更新的时间。

当您使用WS时,您将检索响应并保留上次更新的时间。对于WS的下一个请求,您将发送这个存储的时间。

因此,服务器将只向您发送差额。当然,这会导致对服务器代码的修改。

我不知道这是不是一个干净的解决方案,但它很好用。我在Wifi和3G中得到了大致相同的时间响应。

您也可以使用gzip来压缩消息。

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

您可以在这里看到一个示例

相关内容

  • 没有找到相关文章

最新更新