Skip to main content
 首页 » 编程设计

c#之压缩发送到 Webservice 的数据

2024年01月13日21txw1958

我正在向我的网络服务 (.asmx) 发送一个 XMLDocument,当我通过 xmldocument.outerxml.tostring().length 检查那个 xmldocumetn 的文件大小时,它大约是 433434(我不知道它代表什么.. .是以字节为单位) 所以我想从客户端压缩这些数据并将其发送到 web 服务,而不是将文件作为 XML 保存在我的本地硬盘中。 任何人都可以对此有所了解...... 提前致谢

请您参考如下方法:

xmldocument.OuterXml.ToString().Length 将返回 xml 字符串的长度,如 "something".Length 将返回 9。所以不,它是不以字节为单位。

以字节为单位的实际大小将取决于您的编码,例如您可以使用:

System.Text.ASCIIEncoding.Unicode.GetByteCount(s); 
System.Text.ASCIIEncoding.ASCII.GetByteCount(s); 
... 

取决于您使用的编码。

编辑1: 数据量大吗?假设您通过网络发送它,您有很多选择可以在发送之前压缩数据。

您可以使用自己的自定义编码来尽可能减少发送的数据,比如将常量节点名称索引为“a”、“b”……然后发送 map 。您也可以尝试分块发送。

如果文件大小因超时而成为问题,我建议查看 webservice.timeout 属性 On MSDN