asp.net zip 压缩传输
在实际生产中,比如使用xml json 等传输大量数据的时候,有时候会出现等待时间过长,这里分享一个压缩传输的方法
首先到网上去下载一个 ICSharpCode.SharpZipLib.dll 的dll (百度和google)都是可以搜索到的
这里本人是在传输xml 格式文本的时候感觉网速稍慢,所以找到了此优化的方法
这里把代码分享出来
这里是压缩数据的方法
using System; using System.Collections.Generic; using System.Web; using System.Web.Services; using PNXSoft.Framework.Configuration; using PNXSoft.Framework.DataAccess_MySql; using PNXSoft.Framework.Constants; using System.Data; using System.IO; using System.Runtime.Serialization.Formatters.Binary; using ICSharpCode.SharpZipLib.Zip; /// <summary> /// 压缩数据集 /// </summary> /// <param name="ds"></param> /// <returns></returns> public static byte[] CompressDS(DataSet ds) { MemoryStream ms = new MemoryStream(); ZipOutputStream zos = new ZipOutputStream(ms); zos.PutNextEntry(new ZipEntry(ds.DataSetName)); BinaryFormatter bf = new BinaryFormatter(); //DataSetSurrogate dss = new DataSetSurrogate(ds); bf.Serialize(zos, ds); zos.CloseEntry(); zos.Close(); byte[] ret = ms.ToArray(); ms.Close(); return ret; } 解压数据的方法 using System; using System.Collections.Generic; using System.Web; using System.Data; using System.IO; using System.Runtime.Serialization.Formatters.Binary; using ICSharpCode.SharpZipLib.Zip; /// <summary> ///DSCompress 的摘要说明 /// </summary> public class DSCompress { public DSCompress() { // //TODO: 在此处添加构造函数逻辑 // } /// <summary> /// 解压数据集 /// </summary> /// <param name="byt"></param> /// <returns></returns> public static DataSet DecompressDS(byte[] byt) { MemoryStream ms = new MemoryStream(byt); BinaryFormatter bf = new BinaryFormatter(); ZipInputStream zis = new ZipInputStream(ms); zis.GetNextEntry(); DataSet ds = (DataSet)bf.Deserialize(zis); zis.Close(); ms.Close(); return ds; } }
代码没什么难度,希望可以帮助到需要的人