2008-08-15 32 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

主要的性能不會來自編碼文件的傳輸,它將處理服務器必須對文件預傳輸進行編碼(除非文件沒有改變經常編碼的版本可以以某種方式緩存)。

相關問題