asp.net zip 压缩传输

原文: 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;



    } 



}

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

你可能感兴趣的:(asp.net)