博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C# 常见Url操作实例(二)
阅读量:4288 次
发布时间:2019-05-27

本文共 2051 字,大约阅读时间需要 6 分钟。

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

/// /// URL的操作类/// 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;    }    ///     /// 是否是Base64字符串    ///     ///     /// 
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 /// /// 分析 url 字符串中的参数信息。sharejs.com /// /// 输入的 URL /// 输出 URL 的基础部分 /// 输出分析后得到的 (参数名,参数值) 的集合 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")); } }}

转载地址:http://ffogi.baihongyu.com/

你可能感兴趣的文章
数据结构与算法
查看>>
高并发架构基石 - 缓存
查看>>
关系型数据和文档型数据库有什么区别?
查看>>
Redis 的过期策略和内存淘汰机制有什么区别?
查看>>
Redis 怎样实现的分布式锁?
查看>>
Redis 中如何实现的消息队列?实现的方式有几种?
查看>>
Redis 是如何实现高可用的?
查看>>
说一下 JVM 的内存布局和运行原理?
查看>>
垃圾回收算法有哪些?
查看>>
你用过哪些垃圾回收器?它们有什么区别?
查看>>
如何保证接口的幂等性?常见的实现方案有哪些?
查看>>
TCP 为什么需要三次握手?
查看>>
Nginx 的负载均衡模式有哪些?它的实现原理是什么?
查看>>
Docker 有什么优点?使用时需要注意什么问题?
查看>>
valgrind 在开发板上运行以及使用
查看>>
mysql启动后停止,重装mysql
查看>>
MySQL数据库与Oracle数据库中建表使用单引号和双引号的效果
查看>>
MySQL数据库---数据库管理
查看>>
spring cloud整合mybatis学习中遇到的坑
查看>>
javaWeb基础知识及注意事项
查看>>