asp.net zip 压缩传输

时间:2023-03-08 16:32:44

在实际生产中,比如使用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; } }

代码没什么难度,希望可以帮助到需要的人