在編寫web service時,要考慮傳輸速度,就要注意對大資料量檔案或圖片進行壓縮傳輸,然後在用戶端進行解壓縮,可以減少傳輸過程中的時間!
以下是主要代碼: 1//服務端:
2 [WebMethod]
3 public byte[] Search(string ID)
4 {
5 // 壓縮
6 MemoryStream oStream = new MemoryStream();
7 DeflateStream zipStream = new DeflateStream(oStream, CompressionMode.Compress);
8 zipStream.Write(bytes, 0, bytes.Length);
9 zipStream.Flush();
10 zipStream.Close();
11 return oStream.ToArray();
12 }
13
14//用戶端:
15public DataSet DecompressionDataSet(byte[] bytes)
16 {
17 // 初始化流,設定讀取位置
18 MemoryStream mStream = new MemoryStream(bytes);
19 mStream.Seek(0, SeekOrigin.Begin);
20 // 解壓縮
21 DeflateStream unZipStream = new DeflateStream(mStream, CompressionMode.Decompress, true);
22 // 還原序列化得到資料集
23 DataSet dsResult = new DataSet();
24 dsResult.RemotingFormat = SerializationFormat.Binary;
25 BinaryFormatter bFormatter = new BinaryFormatter();
26 dsResult = (DataSet)bFormatter.Deserialize(unZipStream);
27 return dsResult;
28 }