• gzip优化网络传输量提高传输效率[转]


    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.IO;
    using System.IO.Compression;
    using System.Data;

    namespace Lis2013HISWSTest
    {
    public class ZipHelper
    {
    /// <summary>
    /// 解压
    /// </summary>
    /// <param name="Value"></param>
    /// <returns></returns>
    public static DataSet GetDatasetByString(string Value)
    {
    DataSet ds = new DataSet();
    string CC = GZipDecompressString(Value);
    System.IO.StringReader Sr = new StringReader(CC);
    ds.ReadXml(Sr);
    return ds;
    }
    /// <summary>
    /// 根据DATASET压缩字符串
    /// </summary>
    /// <param name="ds"></param>
    /// <returns></returns>
    public static string GetStringByDataset(string ds)
    {
    return GZipCompressString(ds);
    }
    /// <summary>
    /// 将传入字符串以GZip算法压缩后,返回Base64编码字符
    /// </summary>
    /// <param name="rawString">需要压缩的字符串</param>
    /// <returns>压缩后的Base64编码的字符串</returns>
    public static string GZipCompressString(string rawString)
    {
    if (string.IsNullOrEmpty(rawString) || rawString.Length == 0)
    {
    return "";
    }
    else
    {
    byte[] rawData = System.Text.Encoding.UTF8.GetBytes(rawString.ToString());
    byte[] zippedData = Compress(rawData);
    return (string)(Convert.ToBase64String(zippedData));
    }

    }
    /// <summary>
    /// GZip压缩
    /// </summary>
    /// <param name="rawData"></param>
    /// <returns></returns>
    public static byte[] Compress(byte[] rawData)
    {
    MemoryStream ms = new MemoryStream();
    GZipStream compressedzipStream = new GZipStream(ms, CompressionMode.Compress, true);
    compressedzipStream.Write(rawData, 0, rawData.Length);
    compressedzipStream.Close();
    return ms.ToArray();
    }
    /// <summary>
    /// 将传入的二进制字符串资料以GZip算法解压缩
    /// </summary>
    /// <param name="zippedString">经GZip压缩后的二进制字符串</param>
    /// <returns>原始未压缩字符串</returns>
    public static string GZipDecompressString(string zippedString)
    {
    if (string.IsNullOrEmpty(zippedString) || zippedString.Length == 0)
    {
    return "";
    }
    else
    {
    byte[] zippedData = Convert.FromBase64String(zippedString.ToString());
    return (string)(System.Text.Encoding.UTF8.GetString(Decompress(zippedData)));
    }
    }
    /// <summary>
    /// ZIP解压
    /// </summary>
    /// <param name="zippedData"></param>
    /// <returns></returns>
    public static byte[] Decompress(byte[] zippedData)
    {
    MemoryStream ms = new MemoryStream(zippedData);
    GZipStream compressedzipStream = new GZipStream(ms, CompressionMode.Decompress);
    MemoryStream outBuffer = new MemoryStream();
    byte[] block = new byte[1024];
    while (true)
    {
    int bytesRead = compressedzipStream.Read(block, 0, block.Length);
    if (bytesRead <= 0)
    break;
    else
    outBuffer.Write(block, 0, bytesRead);
    }
    compressedzipStream.Close();
    return outBuffer.ToArray();
    }
    }
    }

  • 相关阅读:
    laravel 安装完成后安装 vendor 目录
    requires php ~7.1 -> your PHP version (7.0.18) does not satisfy that requirement
    查看laravel版本
    git update-index --assume-unchanged
    Git 取消跟踪已版本控制的文件(亲测可行)
    git把某个文件去除版本控制
    git如何移除某文件夹的版本控制
    git如何移除某文件的版本控制
    git 教程
    Git branch && Git checkout常见用法
  • 原文地址:https://www.cnblogs.com/fx2008/p/3779276.html
Copyright © 2020-2023  润新知