• C# 获取url中的查询字符串参数


    /// <summary>
    /// 获取url中的查询字符串参数
    /// </summary>
    public static NameValueCollection ExtractQueryParams(string url)
    {
        int startIndex = url.IndexOf("?");
        NameValueCollection values = new NameValueCollection();
     
        if (startIndex <= 0)
            return values;
     
        string[] nameValues = url.Substring(startIndex + 1).Split('&');
     
        foreach (string s in nameValues)
        {
            string[] pair = s.Split('=');
     
            string name = pair[0];
            string value = string.Empty;
     
            if (pair.Length > 1)
                value = pair[1];
     
            values.Add(name, value);
        }
     
        return values;
    }
    ///   <summary>
    ///  解码URL.
    ///   </summary>
    ///   <param name="encoding"> null为自动选择编码 </param>
    ///   <param name="str"></param>
    ///   <returns></returns>
    public   static   string  MyUrlDeCode( string  str, Encoding encoding)
    {
         if  (encoding  ==   null )
        {
            Encoding utf8  =  Encoding.UTF8;
             // 首先用utf-8进行解码                     
             string  code  =  HttpUtility.UrlDecode(str.ToUpper(), utf8);
             // 将已经解码的字符再次进行编码.
             string  encode  =  HttpUtility.UrlEncode(code, utf8).ToUpper();
             if  (str  ==  encode)
                encoding  =  Encoding.UTF8;
             else
                encoding  =  Encoding.GetEncoding( " gb2312 " );
        }
         return  HttpUtility.UrlDecode(str, encoding);
    }

    using System.Security.Cryptography;
    using System.Collections.Specialized;

    NameValueCollection col = ExtractQueryParams("partnerId=12546&action=getProduct&timestamp=1560850762&nonce=8ObVcFPmverVgKth&sign=ea93f793f67e3a442fd8ad2bdf61e70e&data=FxsFyiX2s7M3zsnRzpkvGe6oOeLvmN1Q0u24cC1YX3PBU8fE9KA%2BOwU2RFD%2F4yhglONDiFC3te5Cqe0%2FLrfkZQcsUefPieWWo8K2GlOAA4OQBu3Y9YX8xkWTNPPcWjHLN%2BMd%2BOR%2B6fHL0AxQgKBNdTSKdOR9fo9WUZa1Snvh%2Bww%3D");
                string searchKey = col["action"];
                Response.Write(searchKey);
  • 相关阅读:
    kubeadm部署kubernetes
    一键部署redis-5.0.5
    二进制部署kubernetes高可用
    设计模式--行为型模式--观察者模式(Observer模式)
    设计模式--行为型模式--状态模式
    设计模式--行为型模式--责任链模式(职责链模式)
    《数学之美》在线阅读
    设计模式--行为型模式--命令模式
    设计模式--行为型模式--策略模式
    设计模式--行为型模式--模板方法模式
  • 原文地址:https://www.cnblogs.com/Fooo/p/11048452.html
Copyright © 2020-2023  润新知