C#Url处理类
using System;using System.Text.RegularExpressions;using System.Web;using System.Collections.Specialized;namespace DotNet.Utilities{ /// <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参数 /// </summary> public static string AddParam(string url, string paramName, string value) { Uri uri = new Uri(url); if (string.IsNullOrEmpty(uri.Query)) { string eval = HttpContext.Current.Server.UrlEncode(value); return String.Concat(url, "?" + paramName + "=" + eval); } else { string eval = HttpContext.Current.Server.UrlEncode(value); return String.Concat(url, "&" + paramName + "=" + eval); } } /// <summary> /// 更新URL参数 /// </summary> public static string UpdateParam(string url, string paramName, string value) { string keyWord = paramName+"="; int index = url.IndexOf(keyWord)+keyWord.Length; int index1 = url.IndexOf("&", index); if (index1 == -1) { url = url.Remove(index, url.Length - index); url = string.Concat(url, value); return url; } url = url.Remove(index,index1 - index); url = url.Insert(index, value); return url; } #region 分析URL所属的域 public static void GetDomain(string fromUrl, out string domain, out string subDomain) { domain = ""; subDomain = ""; try { if (fromUrl.IndexOf("的名片") > -1) { subDomain = fromUrl; domain = "名片"; return; } UriBuilder builder = new UriBuilder(fromUrl); fromUrl = builder.ToString(); Uri u = new Uri(fromUrl); if (u.IsWellFormedOriginalString()) { if (u.IsFile) { subDomain = domain = "客户端本地文件路径"; } else { string Authority = u.Authority; string[] ss = u.Authority.Split('.'); if (ss.Length == 2) { Authority = "www." + Authority; } int index = Authority.IndexOf('.', 0); domain = Authority.Substring(index + 1, Authority.Length - index - 1).Replace("comhttp","com"); subDomain = Authority.Replace("comhttp", "com"); if (ss.Length < 2) { domain = "不明路径"; subDomain = "不明路径"; } } } else { if (u.IsFile) { subDomain = domain = "客户端本地文件路径"; } else { subDomain = domain = "不明路径"; } } } catch { subDomain = domain = "不明路径"; } } /// <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")); } } #endregion }}C#Url处理类的更多相关文章
- UrlUtils工具类,Java URL工具类,Java URL链接工具类
UrlUtils工具类,Java URL工具类,Java URL链接工具类 >>>>>>>>>>>>>>>&g ...
- URL工具类
UrlUtils = { /** * 判断url是否存在(存在跨域问题) * @param {String} url */ isTrueUrl: function(_url) { result = f ...
- java中的URL InetAddress类
/* * InetAddress类: * 用于标识网络上的硬件资源,表示互联网协议(ip)地址,是java对ip地址的封装. * 其实例对象包含以数字形式保存的IP地址,主机名. * InetAddr ...
- php 对url 操作类:url拼接、get获取页面、post获取页面(带传参)
/* * @brief url封装类,将常用的url请求操作封装在一起 * */ class URL{ private $error; public function __construct(){ $ ...
- 使用URL工具类调用webservice接口(soap)与http接口的实现方式
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import ...
- ASP.NET @URL帮助类
原文: https://www.cnblogs.com/bobo-show/p/5746389.html https://www.cnblogs.com/zhuji/p/7698057.html ...
- Java 使用URL类通过url下载网络资源
主要用到的类 地址类: URL http类: HttpURLConnection 输入流: InputStream 输出流: FileOutputStream 上代码 package com.demo ...
- JS 工具类
之前工作用的JavaScript比较多,总结了一下工具类,和大家分享一下,有不足之处还请多多见谅!! 1. 数组工具类(arrayUtils) var arrayUtils = {}; (functi ...
- ASP.NET MVC 5 Web编程2 -- URL映射(路由原理)
本章将讲述ASP.NET MVC5 的路由原理,即URL映射机制. 简单点就是解释:为什么MVC在浏览器输入地址就能访问到类(或类中的方法)?这是怎么做到的?我自己可以通过.NET写出一个自己的MVC ...
随机推荐
- 图解Docker容器和镜像
图解Docker容器和镜像 这篇文章希望能够帮助读者深入理解Docker的命令,还有容器(container)和镜像(image)之间的区别,并深入探讨容器和运行中的容器之间的区别. 当我对Docke ...
- 学了9天java,没什么感觉,有点害怕,总结一下for循环。
for(int i=0; i<100; i++){ if(i%3==0){ continue://满足条件的跳过 } System.out.print(i); } //最后输出的数中没有满足3的 ...
- 【ajax】1、ajax原理
Ajax核心XMLHttpRequest对象 XMLHttpRequest对象方法 XMLHttpRequest对象属性 onreadystatechange 状态改变的事件触发器.每次 readyS ...
- canvas-0scale.html
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- Manjaro使用笔记-使用中国源的方法
我的邮箱地址:zytrenren@163.com欢迎大家交流学习纠错!生成可用中国镜像站列表: sudo pacman-mirrors -i -c China -m rank 勾选弹窗里面的所有源刷新 ...
- Python 练习:三级菜单选择城市
info = { 'GuangDong':{ 'GuangZhou': ['TianHe', 'HaiZhu'], 'MaoMing': ['MaoNan', 'DianBai']}, 'ShanDo ...
- Python 基于urllib.request封装http协议类
基于urllib.request封装http协议类 by:授客QQ:1033553122 测试环境: Python版本:Python 3.3 代码实践 #!/usr/bin/env python ...
- ionic打包报错Execution failed for task ':processDebugResources'
ionic 打包的时候报了这样一个错误:Execution failed for task ':processDebugResources' 分析: compile "com.android ...
- Android Context类
一.Context类的使用场景 ①.创建Application对象时,而且整个app公用一个Application对象 ②.创建Service对象时 ③.创建Activity对象时 二.应用程序共有几 ...
- axure工具的使用总结
---恢复内容开始--- Axure工具的使用 axure是什么? Axure RP是一款快速原型设计工具,它不需要任何编程或写代码基础,就可以设计出交互效果良好的产品原型,常用于互联网产品设计.网页 ...