NET-URL的操作类
NET-URL的操作类
代码
1 public class UrlOper
2 {
3 static System.Text.Encoding encoding = System.Text.Encoding.UTF8;
4
5 URL的64位编码#region URL的64位编码
6 public static string Base64Encrypt(string sourthUrl)
7 {
8 string eurl = HttpUtility.UrlEncode(sourthUrl);
9 eurl = Convert.ToBase64String(encoding.GetBytes(eurl));
10 return eurl;
11 }
12 #endregion
13
14 URL的64位解码#region URL的64位解码
15 public static string Base64Decrypt(string eStr)
16 {
17 if (!IsBase64(eStr))
18 {
19 return eStr;
20 }
21 byte[] buffer = Convert.FromBase64String(eStr);
22 string sourthUrl = encoding.GetString(buffer);
23 sourthUrl = HttpUtility.UrlDecode(sourthUrl);
24 return sourthUrl;
25 }
26 /**//// <summary>
27 /// 是否是Base64字符串
28 /// </summary>
29 /// <param name="eStr"></param>
30 /// <returns></returns>
31 public static bool IsBase64(string eStr)
32 {
33 if ((eStr.Length % 4) != 0)
34 {
35 return false;
36 }
37 if (!Regex.IsMatch(eStr, "^[A-Z0-9/+=]*$", RegexOptions.IgnoreCase))
38 {
39 return false;
40 }
41 return true;
42 }
43 #endregion
44
45 /**//// <summary>
46 /// 添加URL参数
47 /// </summary>
48 public static string AddParam(string url, string paramName, string value)
49 {
50 Uri uri = new Uri(url);
51 if (string.IsNullOrEmpty(uri.Query))
52 {
53 string eval = HttpContext.Current.Server.UrlEncode(value);
54 return String.Concat(url, "?" + paramName + "=" + eval);
55 }
56 else
57 {
58 string eval = HttpContext.Current.Server.UrlEncode(value);
59 return String.Concat(url, "&" + paramName + "=" + eval);
60 }
61 }
62 /**//// <summary>
63 /// 更新URL参数
64 /// </summary>
65 public static string UpdateParam(string url, string paramName, string value)
66 {
67 string keyWord = paramName+"=";
68 int index = url.IndexOf(keyWord)+keyWord.Length;
69 int index1 = url.IndexOf("&", index);
70 if (index1 == -1)
71 {
72 url = url.Remove(index, url.Length - index);
73 url = string.Concat(url, value);
74 return url;
75 }
76 url = url.Remove(index,index1 - index);
77 url = url.Insert(index, value);
78 return url;
79 }
80
81 分析URL所属的域#region 分析URL所属的域
82 public static void GetDomain(string fromUrl, out string domain, out string subDomain)
83 {
84 domain = "";
85 subDomain = "";
86 try
87 {
88 if (fromUrl.IndexOf("的名片") > -1)
89 {
90 subDomain = fromUrl;
91 domain = "名片";
92 return;
93 }
94
95 UriBuilder builder = new UriBuilder(fromUrl);
96 fromUrl = builder.ToString();
97
98 Uri u = new Uri(fromUrl);
99
100 if (u.IsWellFormedOriginalString())
101 {
102 if (u.IsFile)
103 {
104 subDomain = domain = "客户端本地文件路径";
105
106 }
107 else
108 {
109 string Authority = u.Authority;
110 string[] ss = u.Authority.Split('.');
111 if (ss.Length == 2)
112 {
113 Authority = "www." + Authority;
114 }
115 int index = Authority.IndexOf('.', 0);
116 domain = Authority.Substring(index + 1, Authority.Length - index - 1).Replace("comhttp","com");
117 subDomain = Authority.Replace("comhttp", "com");
118 if (ss.Length < 2)
119 {
120 domain = "不明路径";
121 subDomain = "不明路径";
122 }
123 }
124 }
125 else
126 {
127 if (u.IsFile)
128 {
129 subDomain = domain = "客户端本地文件路径";
130 }
131 else
132 {
133 subDomain = domain = "不明路径";
134 }
135 }
136 }
137 catch
138 {
139 subDomain = domain = "不明路径";
140 }
141 }
142
143 /**//// <summary>
144 /// 分析 url 字符串中的参数信息
145 /// </summary>
146 /// <param name="url">输入的 URL</param>
147 /// <param name="baseUrl">输出 URL 的基础部分</param>
148 /// <param name="nvc">输出分析后得到的 (参数名,参数值) 的集合</param>
149 public static void ParseUrl(string url, out string baseUrl, out NameValueCollection nvc)
150 {
151 if (url == null)
152 throw new ArgumentNullException("url");
153
154 nvc = new NameValueCollection();
155 baseUrl = "";
156
157 if (url == "")
158 return;
159
160 int questionMarkIndex = url.IndexOf('?');
161
162 if (questionMarkIndex == -1)
163 {
164 baseUrl = url;
165 return;
166 }
167 baseUrl = url.Substring(0, questionMarkIndex);
168 if (questionMarkIndex == url.Length - 1)
169 return;
170 string ps = url.Substring(questionMarkIndex + 1);
171
172 // 开始分析参数对
173 Regex re = new Regex(@"(^|&)?(\w+)=([^&]+)(&|$)?", RegexOptions.Compiled);
174 MatchCollection mc = re.Matches(ps);
175
176 foreach (Match m in mc)
177 {
178 nvc.Add(m.Result("$2").ToLower(), m.Result("$3"));
179 }
180 }
181
182 #endregion
183 }
2 {
3 static System.Text.Encoding encoding = System.Text.Encoding.UTF8;
4
5 URL的64位编码#region URL的64位编码
6 public static string Base64Encrypt(string sourthUrl)
7 {
8 string eurl = HttpUtility.UrlEncode(sourthUrl);
9 eurl = Convert.ToBase64String(encoding.GetBytes(eurl));
10 return eurl;
11 }
12 #endregion
13
14 URL的64位解码#region URL的64位解码
15 public static string Base64Decrypt(string eStr)
16 {
17 if (!IsBase64(eStr))
18 {
19 return eStr;
20 }
21 byte[] buffer = Convert.FromBase64String(eStr);
22 string sourthUrl = encoding.GetString(buffer);
23 sourthUrl = HttpUtility.UrlDecode(sourthUrl);
24 return sourthUrl;
25 }
26 /**//// <summary>
27 /// 是否是Base64字符串
28 /// </summary>
29 /// <param name="eStr"></param>
30 /// <returns></returns>
31 public static bool IsBase64(string eStr)
32 {
33 if ((eStr.Length % 4) != 0)
34 {
35 return false;
36 }
37 if (!Regex.IsMatch(eStr, "^[A-Z0-9/+=]*$", RegexOptions.IgnoreCase))
38 {
39 return false;
40 }
41 return true;
42 }
43 #endregion
44
45 /**//// <summary>
46 /// 添加URL参数
47 /// </summary>
48 public static string AddParam(string url, string paramName, string value)
49 {
50 Uri uri = new Uri(url);
51 if (string.IsNullOrEmpty(uri.Query))
52 {
53 string eval = HttpContext.Current.Server.UrlEncode(value);
54 return String.Concat(url, "?" + paramName + "=" + eval);
55 }
56 else
57 {
58 string eval = HttpContext.Current.Server.UrlEncode(value);
59 return String.Concat(url, "&" + paramName + "=" + eval);
60 }
61 }
62 /**//// <summary>
63 /// 更新URL参数
64 /// </summary>
65 public static string UpdateParam(string url, string paramName, string value)
66 {
67 string keyWord = paramName+"=";
68 int index = url.IndexOf(keyWord)+keyWord.Length;
69 int index1 = url.IndexOf("&", index);
70 if (index1 == -1)
71 {
72 url = url.Remove(index, url.Length - index);
73 url = string.Concat(url, value);
74 return url;
75 }
76 url = url.Remove(index,index1 - index);
77 url = url.Insert(index, value);
78 return url;
79 }
80
81 分析URL所属的域#region 分析URL所属的域
82 public static void GetDomain(string fromUrl, out string domain, out string subDomain)
83 {
84 domain = "";
85 subDomain = "";
86 try
87 {
88 if (fromUrl.IndexOf("的名片") > -1)
89 {
90 subDomain = fromUrl;
91 domain = "名片";
92 return;
93 }
94
95 UriBuilder builder = new UriBuilder(fromUrl);
96 fromUrl = builder.ToString();
97
98 Uri u = new Uri(fromUrl);
99
100 if (u.IsWellFormedOriginalString())
101 {
102 if (u.IsFile)
103 {
104 subDomain = domain = "客户端本地文件路径";
105
106 }
107 else
108 {
109 string Authority = u.Authority;
110 string[] ss = u.Authority.Split('.');
111 if (ss.Length == 2)
112 {
113 Authority = "www." + Authority;
114 }
115 int index = Authority.IndexOf('.', 0);
116 domain = Authority.Substring(index + 1, Authority.Length - index - 1).Replace("comhttp","com");
117 subDomain = Authority.Replace("comhttp", "com");
118 if (ss.Length < 2)
119 {
120 domain = "不明路径";
121 subDomain = "不明路径";
122 }
123 }
124 }
125 else
126 {
127 if (u.IsFile)
128 {
129 subDomain = domain = "客户端本地文件路径";
130 }
131 else
132 {
133 subDomain = domain = "不明路径";
134 }
135 }
136 }
137 catch
138 {
139 subDomain = domain = "不明路径";
140 }
141 }
142
143 /**//// <summary>
144 /// 分析 url 字符串中的参数信息
145 /// </summary>
146 /// <param name="url">输入的 URL</param>
147 /// <param name="baseUrl">输出 URL 的基础部分</param>
148 /// <param name="nvc">输出分析后得到的 (参数名,参数值) 的集合</param>
149 public static void ParseUrl(string url, out string baseUrl, out NameValueCollection nvc)
150 {
151 if (url == null)
152 throw new ArgumentNullException("url");
153
154 nvc = new NameValueCollection();
155 baseUrl = "";
156
157 if (url == "")
158 return;
159
160 int questionMarkIndex = url.IndexOf('?');
161
162 if (questionMarkIndex == -1)
163 {
164 baseUrl = url;
165 return;
166 }
167 baseUrl = url.Substring(0, questionMarkIndex);
168 if (questionMarkIndex == url.Length - 1)
169 return;
170 string ps = url.Substring(questionMarkIndex + 1);
171
172 // 开始分析参数对
173 Regex re = new Regex(@"(^|&)?(\w+)=([^&]+)(&|$)?", RegexOptions.Compiled);
174 MatchCollection mc = re.Matches(ps);
175
176 foreach (Match m in mc)
177 {
178 nvc.Add(m.Result("$2").ToLower(), m.Result("$3"));
179 }
180 }
181
182 #endregion
183 }
一个完整的人生应该是宽恕、容忍、等待和爱!