Android - ASMX Web服务Internet数据使用

时间:2013-09-08 18:20:37

标签: c# android web-services ksoap2

正如我在标题中提到的,我有一个互联网数据使用问题。

当我使用 KSOAP2 时,我有一个 ASMX(C#) Web服务返回平均 400字节JSON字符串/数组在我的Android应用程序中获取它显示 1.7 KB数据 TrafficStats 类中。

我检查了所有与测量数据使用相关的代码部分是否属实,我的意思是我检查了我的电话运营商最近1小时的数据使用情况来控制我的代码。

如何减少此数据使用量?感谢。

注意:压缩或解释为什么数据变为1.7 KB时,只有400字节可以帮助我很多。

Bounty编辑:很抱歉赏金但你的答案不符合解决方案的要求..

1 个答案:

答案 0 :(得分:1)

正如在注释中所解释的那样,在SOAP + XML中返回一个json字符串会带来很多开销。

您可以使用ScriptMethodScriptService属性配置asmx服务,直接返回json。这样,您可以直接从该方法返回您的对象,而不是返回一个字符串。

现在您的修改方法将是这样的:

[ScriptMethod(ResponseFormat=ResponseFormat.Json)]
[WebMethod]
public MyClass GetID(string id)
{
    var myobj = new MyClass();
    //instead of serializing your object manually and returning a string
    //directly return your object. Webservice will do it for you.
    return myobj;
}

另请确保请求是POST,而不是GEThere是解释)

PS:启用Http压缩也可能有所帮助。 http://www.iis.net/configreference/system.webserver/httpcompression