C# 常见Url操作实例(二)

    xiaoxiao2022-06-30  47

    一、Base64转码url,判断url是否是base64格式,url字符串中参数解析

    /// <summary> /// URL的操作类 /// </summary> public class UrlOper { static System.Text.Encoding encoding = System.Text.Encoding.UTF8; #region URL的64位编码 public static string Base64Encrypt(string sourthUrl) { string eurl = HttpUtility.UrlEncode(sourthUrl); eurl = Convert.ToBase64String(encoding.GetBytes(eurl)); return eurl; } #endregion #region URL的64位解码 public static string Base64Decrypt(string eStr) { if (!IsBase64(eStr)) { return eStr; } byte[] buffer = Convert.FromBase64String(eStr); string sourthUrl = encoding.GetString(buffer); sourthUrl = HttpUtility.UrlDecode(sourthUrl); return sourthUrl; } /// <summary> /// 是否是Base64字符串 /// </summary> /// <param name="eStr"></param> /// <returns></returns> public static bool IsBase64(string eStr) { if ((eStr.Length % 4) != 0) { return false; } if (!Regex.IsMatch(eStr, "^[A-Z0-9/+=]*$", RegexOptions.IgnoreCase)) { return false; } return true; } #endregion /// <summary> /// 分析 url 字符串中的参数信息。sharejs.com /// </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")); } } } Url操作实例一

    转载请注明原文地址: https://ju.6miu.com/read-1125610.html

    最新回复(0)