c# - Android - ASMX Web 服务互联网数据使用

标签 c# android web-services ksoap2

<分区>

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

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

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

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

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

赏金编辑:抱歉关于赏金,但您的答案不符合解决方案的要求..

最佳答案

如评论中所述,在 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,而不是 GET(here 是解释)

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

关于c# - Android - ASMX Web 服务互联网数据使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18687093/

相关文章:

c# - 将行添加到 TableLayoutPanel 的顶部

c# - MathML 的数学表达式

android - 不同布局中的按钮定位

android - 打开sqlite数据库失败android

Android - 将 TalkBack 辅助功能焦点设置到特定 View

c# - Azure DevOps API 测试结果

java - 使用单例模式的 jax-ws 客户端

Java jax-rs 服务器

javascript - JQuery 自动完成 IE8(Web 服务 ASMX))

c# - 如何在解析平面文本文件后创建对象