zoukankan      html  css  js  c++  java
  • [转][C#]拆分参数对

    /// <summary>
    /// 分析 url 字符串中的参数信息
    /// </summary>
    /// <param name="url">输入的 URL</param>
    /// <param name="baseUrl">输出 URL 的基础部分</param>
    /// <param name="nvc">输出分析后得到的 (参数名,参数值) 的集合</param>
    public static NameValueCollection ParseUrl(string url)
    {
        NameValueCollection nvc = new NameValueCollection();
        if (string.IsNullOrEmpty(url))
            return nvc;
        // 开始分析参数对  
        Regex re = new Regex(@"(^|&)?(w+)=([^&]+)(&|$)?", RegexOptions.Compiled);
        MatchCollection mc = re.Matches(url);
        foreach (Match m in mc)
        {
            nvc.Add(m.Result("$2").ToLower(), m.Result("$3"));
        }
        return nvc;
    }
    /// <summary>
    /// 分析 url 字符串中的参数信息
    /// </summary>
    /// <param name="url">输入的 URL</param>
    /// <param name="baseUrl">输出 URL 的基础部分</param>
    /// <param name="nvc">输出分析后得到的 (参数名,参数值) 的集合</param>
    public static void ParseUrl(string url, out string baseUrl, out NameValueCollection nvc)
    {
      if (url == null)
     throw new ArgumentNullException("url");
      nvc = new NameValueCollection();
      baseUrl = "";
      if (url == "")
     return;
      int questionMarkIndex = url.IndexOf('?');
      if (questionMarkIndex == -1)
      {
     baseUrl = url;
     return;
      }
      baseUrl = url.Substring(0, questionMarkIndex);
      if (questionMarkIndex == url.Length - 1)
     return;
      string ps = url.Substring(questionMarkIndex + 1);
      // 开始分析参数对  
      Regex re = new Regex(@"(^|&)?(w+)=([^&]+)(&|$)?",RegexOptions.Compiled);
      MatchCollection mc = re.Matches(ps);
      foreach (Match m in mc)
      {
     nvc.Add(m.Result("$2").ToLower(), m.Result("$3"));
      }
    }
    List<KeyValuePair<String, String>> paramList = new List<KeyValuePair<String, String>>();
    paramList.Add(new KeyValuePair<string, string>("data","test"));
    using (HttpClient hc = new HttpClient())
    {
        HttpResponseMessage response = hc.PostAsync(new Uri(url), new FormUrlEncodedContent(paramList)).Result;
        var result = JsonConvert.DeserializeObject<ResultInfo>(response.Content.ReadAsStringAsync().Result);
    }
  • 相关阅读:
    Golang error 的突围
    深度解密Go语言之 scheduler
    深度解密Go语言之channel
    如何打造一份优雅的简历?
    Go 程序是怎样跑起来的
    曹大谈内存重排
    从零开始使用 Webpack 搭建 Vue 开发环境
    纯样式无脚本无图片自定义单/复选框
    从零开始使用 Webpack 搭建 Vue3 开发环境
    JS遍历对象的几种方法
  • 原文地址:https://www.cnblogs.com/z5337/p/9221024.html
Copyright © 2011-2022 走看看