1

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

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

我检查了所有与测量数据使用量相关的代码部分都是真实的,我的意思是即使我检查了我的电话运营商关于过去 1 小时的数据使用情况来控制我的代码。

我怎样才能减少这种数据使用量?谢谢。

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

赏金编辑:对赏金感到抱歉,但您的答案不符合解决方案的要求。

4

1 回答 1

1

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

ScriptMethod 您可以使用和属性配置您的 asmx 服务ScriptService以直接返回 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;
}

还要确保请求是 a POST,而不是 a GET这里是解释)

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

于 2013-09-11T11:32:54.803 回答