2008-08-15 43 views
4

question and answer显示如何通过XML Web服务将文件作为字节数组发送。使用此方法进行文件传输会产生多少开销?我假设数据如下所示:通过Web服务将文件作为字节数组发送时,会产生多少额外开销?

<?xml version="1.0" encoding="UTF-8" ?> 
<bytes> 
    <byte>16</byte> 
    <byte>28</byte> 
    <byte>127</byte> 
    ... 
</bytes> 

如果此格式正确,则必须先将字节转换为UTF-8字符。每个字符都分配8个字节。字节是以十进制,十六进制还是二进制字符存储的?由于XML数据和字符编码,文件发送时多大?压缩内置于Web服务中吗?

回答

11

通常情况下,字节数组是作为base64编码字符串发送的,而不是标签中的单个字节。

http://en.wikipedia.org/wiki/Base64

base64编码版本是原始内容的大小的大约137%

0

我对一些企业内部网络服务使用这种方法,我没有注意到任何重大的减速(但这并不意味着它不存在)。

您可以使用众多网络流量分析工具中的任何一种来测量数据的大小,并根据此数据进行判断调用。

0

我不确定所有的细节(压缩,编码等),但我通常只使用WireShark来分析网络流量(尝试各种方法时),然后让您看到它的发送方式。

例如,如果它被压缩了,数据包的数据块就不应该以纯文本的形式被读取......但是如果它是未压缩的,你只会看到普通的xml文本......就像你会看到HTTP流量一样,或者在某些情况下甚至是FTP。

0

要在.net Web服务中回应Kevin所说的话,如果您有一个字节数组,它将默认作为base64编码字符串发送。您也可以事先指定字节数组的编码。

显然,一旦它到达服务器(或客户端),您需要手动将字符串解码回字节数组,因为这不是自动为您完成的。

0

主要的性能不会来自编码文件的传输,它将处理服务器必须对文件预传输进行编码(除非文件没有改变经常编码的版本可以以某种方式缓存)。

相关问题