RequestUtility类中,封装了一些常用属性,如:取得当前请求URL,RawURL,远程客户端IP,远程客户端DNS等;
封装了一些常用方法:如从QueryString和Form中取得int、float、decimal、double、DateTime类型参数,以及读取和设置Cookies和Session的常用操作。
对于这样的http://www.3wto.com/aspx/PictureDetail.aspx?ID=8719,你会怎么取得ID值呢?
如果你还停留在:
if(Request.QueryString("ID")!=null){
int ID = Convert.ToInt32(Request.QueryString("ID"));
}
那你在这篇文章将会找到新的答案,比如:
int ID = RequestUtility.GetQueryInt("ID",-1);
怎么样,是不是很easy?
OK 下面还有更精彩的,fllow me!
还是老样子,先上图:
RequestUtility 常用属性:
RequestUtility 方法:
示例代码:
RequestUtility
1using System;
2using System.Web;
3using System.Web.Caching;
4using System.Web.SessionState;
5using System.Collections.Specialized;
6
7namespace Loskiv.Utility
8{
9 /**//// <summary>
10 /// 名称:Request常用属性和操作类
11 /// 作者:loskiv
12 /// 创建时间:2009-07-07
13 /// </summary>
14 public class RequestUtility
15 {
16
17 属性#region 属性
18
19 /**//// <summary>
20 /// 当前页面是否接收到了Post请求
21 /// </summary>
22 public static bool IsPost
23 {
24 get { return SiteUtility.CurRequest.HttpMethod.Equals("POST"); }
25 }
26
27 /**//// <summary>
28 /// 当前页面是否接收到了Get请求
29 /// </summary>
30 public static bool IsGet
31 {
32 get { return SiteUtility.CurRequest.HttpMethod.Equals("GET"); }
33 }
34
35 /**//// <summary>
36 /// 客户端请求当前页面的URL地址
37 /// </summary>
38 public static string CurURL
39 {
40 get
41 {
42 if (ConvertUtility.IsNull(SiteUtility.CurRequest.Url))
43 return string.Empty;
44 return SiteUtility.CurRequest.Url.ToString();
45 }
46 }
47
48 /**//// <summary>
49 /// 客户端请求当前页面的原始URL地址,不带http://的
50 /// </summary>
51 public static string CurRawURL
52 {
53 get
54 {
55 if (ConvertUtility.IsNull(SiteUtility.CurRequest.RawUrl))
56 return string.Empty;
57 return SiteUtility.CurRequest.RawUrl;
58 }
59 }
60
61 /**//// <summary>
62 /// 上次请求的URL地址,该URL地址链接到当前URL
63 /// </summary>
64 public static string ReferrerURL
65 {
66 get
67 {
68 if (ConvertUtility.IsNull(SiteUtility.CurRequest.UrlReferrer))
69 return string.Empty;
70 return SiteUtility.CurRequest.UrlReferrer.ToString();
71 }
72 }
73
74 /**//// <summary>
75 /// 当前请求URL的主机名
76 /// </summary>
77 public static string CurHostName
78 {
79 get
80 {
81 if (ConvertUtility.IsNull(SiteUtility.CurRequest.Url))
82 return string.Empty;
83 return SiteUtility.CurRequest.Url.Host;
84 }
85 }
86
87 /**//// <summary>
88 /// 当前请求URL的主机名和端口信息
89 /// </summary>
90 public static string CurFullHostName
91 {
92 get
93 {
94 if (!SiteUtility.CurRequest.Url.IsDefaultPort)
95 {
96 return string.Format("{0}:{1}", SiteUtility.CurRequest.Url.Host, SiteUtility.CurRequest.Url.Port.ToString());
97 }
98 return CurHostName;
99 }
100 }
101
102 /**//// <summary>
103 /// 当前页面文件的完整物理路径
104 /// </summary>
105 public static string CurPhysicalPath
106 {
107 get
108 {
109 return SiteUtility.CurRequest.PhysicalPath;
110 }
111 }
112
113 /**//// <summary>
114 /// 当前页面文件名
115 /// </summary>
116 public static string CurPageName
117 {
118 get
119 {
120 string[] urlArr = SiteUtility.CurRequest.Url.AbsolutePath.Split('/');
121 return urlArr[urlArr.Length - 1];
122 }
123 }
124
125 /**//// <summary>
126 /// 当前应用程序的完整物理路径
127 /// </summary>
128 public static string CurPhysicalApplicationPath
129 {
130 get
131 {
132 return SiteUtility.CurRequest.PhysicalApplicationPath;
133 }
134 }
135
136 /**//// <summary>
137 /// 远程客户端的IP地址
138 /// </summary>
139 public static string ClientIP
140 {
141 get
142 {
143 return SiteUtility.CurRequest.UserHostAddress;
144 }
145 }
146
147 /**//// <summary>
148 /// 远程客户端的DNS名称
149 /// </summary>
150 public static string ClientDNSName
151 {
152 get
153 {
154 return SiteUtility.CurRequest.UserHostName;
155 }
156 }
157
158 /**//// <summary>
159 /// 获取当前请求Form对象
160 /// </summary>
161 public static NameValueCollection Form
162 {
163 get
164 {
165 return SiteUtility.CurRequest.Form;
166 }
167 }
168
169 /**//// <summary>
170 /// 获取当前请求QueryString对象
171 /// </summary>
172 public static NameValueCollection QueryString
173 {
174 get
175 {
176 return SiteUtility.CurRequest.QueryString;
177 }
178 }
179
180 #endregion
181
182 方法#region 方法
183
184 /**//// <summary>
185 /// 获取web服务器指定名称的变量值
186 /// </summary>
187 public static string GetServerVariable(string name)
188 {
189 if (SiteUtility.CurRequest.ServerVariables[name] == null)
190 {
191 return "";
192 }
193 return SiteUtility.CurRequest.ServerVariables[name].ToString();
194 }
195
196 /**//// <summary>
197 /// 获取指定名称的http头变量信息
198 /// </summary>
199 public static string GetHeadValue(string name)
200 {
201 if (SiteUtility.CurRequest.Headers[name] == null)
202 {
203 return "";
204 }
205 return SiteUtility.CurRequest.Headers[name].ToString();
206 }
207
208 /**//// <summary>
209 /// 获取string类型的url参数值
210 /// </summary>
211 public static string GetQueryString(string name)
212 {
213 return ConvertUtility.ConvertToString(SiteUtility.CurRequest.QueryString[name]);
214 }
215
216 /**//// <summary>
217 /// 获取int类型的url参数值
218 /// </summary>
219 public static int GetQueryInt(string name, int defaultValue)
220 {
221 return ConvertUtility.ConvertToInt(SiteUtility.CurRequest.QueryString[name], defaultValue);
222 }
223
224 /**//// <summary>
225 /// 获取float类型的url参数值
226 /// </summary>
227 public static float GetQueryFloat(string name, float defaultValue)
228 {
229 return ConvertUtility.ConvertToFloat(SiteUtility.CurRequest.QueryString[name], defaultValue);
230 }
231
232 /**//// <summary>
233 /// 获取decimal类型的url参数值
234 /// </summary>
235 public static decimal GetQueryDecimal(string name, decimal defaultValue)
236 {
237 return ConvertUtility.ConvertToDecimal(SiteUtility.CurRequest.QueryString[name], defaultValue);
238 }
239
240 /**//// <summary>
241 /// 获取double类型的url参数值
242 /// </summary>
243 public static double GetQueryDouble(string name, double defaultValue)
244 {
245 return ConvertUtility.ConvertToDouble(SiteUtility.CurRequest.QueryString[name], defaultValue);
246 }
247
248 /**//// <summary>
249 /// 获取DateTime类型的url参数值
250 /// </summary>
251 public static DateTime GetQueryDateTime(string name)
252 {
253 return ConvertUtility.ConvertToDateTime(SiteUtility.CurRequest.QueryString[name]);
254 }
255
256 /**//// <summary>
257 /// 获取string类型的Form参数值
258 /// </summary>
259 public static string GetFormString(string name)
260 {
261 return ConvertUtility.ConvertToString(SiteUtility.CurRequest.Form[name]);
262 }
263
264 /**//// <summary>
265 /// 获取int类型的Form参数值
266 /// </summary>
267 public static int GetFormInt(string name, int defaultValue)
268 {
269 return ConvertUtility.ConvertToInt(SiteUtility.CurRequest.Form[name], defaultValue);
270 }
271
272 /**//// <summary>
273 /// 获取float类型的Form参数值
274 /// </summary>
275 public static float GetFormFloat(string name, float defaultValue)
276 {
277 return ConvertUtility.ConvertToFloat(SiteUtility.CurRequest.Form[name], defaultValue);
278 }
279
280 /**//// <summary>
281 /// 获取double类型的Form参数值
282 /// </summary>
283 public static double GetFormDouble(string name, double defaultValue)
284 {
285 return ConvertUtility.ConvertToDouble(SiteUtility.CurRequest.Form[name], defaultValue);
286 }
287
288 /**//// <summary>
289 /// 获取decimal类型的Form参数值
290 /// </summary>
291 public static decimal GetFormDecimal(string name, decimal defaultValue)
292 {
293 return ConvertUtility.ConvertToDecimal(SiteUtility.CurRequest.Form[name], defaultValue);
294 }
295
296 /**//// <summary>
297 /// 获取DateTime类型的Form参数值
298 /// </summary>
299 public static DateTime GetFormDateTime(string name)
300 {
301 return ConvertUtility.ConvertToDateTime(SiteUtility.CurRequest.Form[name]);
302 }
303
304 /**//// <summary>
305 /// 获取远程客户端指定名称的Cookie对象,返回HttpCookie类型
306 /// </summary>
307 public static HttpCookie GetCookie(string name)
308 {
309 return SiteUtility.CurRequestCookies[name];
310 }
311
312 /**//// <summary>
313 /// 获取远程客户端指定名称的Cookie对象的值,如果为空返回string.Empty
314 /// </summary>
315 public static string GetCookieValue(string name)
316 {
317 if (ConvertUtility.IsNull(GetCookie(name)))
318 {
319 return string.Empty;
320 }
321 return GetCookie(name).Value;
322 }
323
324 /**//// <summary>
325 /// 获取远程客户端指定名称的Session对象,返回object类型
326 /// </summary>
327 public static object GetSession(string name)
328 {
329 return SiteUtility.CurSession[name];
330 }
331
332 /**//// <summary>
333 /// 设置远程客户端指定名称的Cookie对象
334 /// </summary>
335 public static void SetResponseCookie(string name, string value, DateTime expireDateTime)
336 {
337 HttpCookie cookie = GetCookie(name);
338 if (ConvertUtility.IsNull(cookie))
339 {
340 cookie = new HttpCookie(name, value);
341 cookie.Expires = expireDateTime;
342 SiteUtility.CurResponseCookies.Add(cookie);
343 }
344 else
345 {
346 cookie.Value = value;
347 cookie.Expires = expireDateTime;
348 SiteUtility.CurResponseCookies.Set(cookie);
349 }
350 }
351
352 /**//// <summary>
353 /// 设置远程客户端Cookie对象
354 /// </summary>
355 public static void SetResponseCookie(HttpCookie cookie)
356 {
357 if (GetCookie(cookie.Name) != null)
358 {
359 SiteUtility.CurResponseCookies.Set(cookie);
360 }
361 else
362 {
363 SiteUtility.CurResponseCookies.Add(cookie);
364 }
365 }
366
367 /**//// <summary>
368 /// 设置当前浏览器的Session对象
369 /// </summary>
370 public static void SetSession(string name, string value)
371 {
372 SiteUtility.CurSession[name] = value;
373 }
374
375 #endregion
376 }
377}
378
1using System;
2using System.Web;
3using System.Web.Caching;
4using System.Web.SessionState;
5using System.Collections.Specialized;
6
7namespace Loskiv.Utility
8{
9 /**//// <summary>
10 /// 名称:Request常用属性和操作类
11 /// 作者:loskiv
12 /// 创建时间:2009-07-07
13 /// </summary>
14 public class RequestUtility
15 {
16
17 属性#region 属性
18
19 /**//// <summary>
20 /// 当前页面是否接收到了Post请求
21 /// </summary>
22 public static bool IsPost
23 {
24 get { return SiteUtility.CurRequest.HttpMethod.Equals("POST"); }
25 }
26
27 /**//// <summary>
28 /// 当前页面是否接收到了Get请求
29 /// </summary>
30 public static bool IsGet
31 {
32 get { return SiteUtility.CurRequest.HttpMethod.Equals("GET"); }
33 }
34
35 /**//// <summary>
36 /// 客户端请求当前页面的URL地址
37 /// </summary>
38 public static string CurURL
39 {
40 get
41 {
42 if (ConvertUtility.IsNull(SiteUtility.CurRequest.Url))
43 return string.Empty;
44 return SiteUtility.CurRequest.Url.ToString();
45 }
46 }
47
48 /**//// <summary>
49 /// 客户端请求当前页面的原始URL地址,不带http://的
50 /// </summary>
51 public static string CurRawURL
52 {
53 get
54 {
55 if (ConvertUtility.IsNull(SiteUtility.CurRequest.RawUrl))
56 return string.Empty;
57 return SiteUtility.CurRequest.RawUrl;
58 }
59 }
60
61 /**//// <summary>
62 /// 上次请求的URL地址,该URL地址链接到当前URL
63 /// </summary>
64 public static string ReferrerURL
65 {
66 get
67 {
68 if (ConvertUtility.IsNull(SiteUtility.CurRequest.UrlReferrer))
69 return string.Empty;
70 return SiteUtility.CurRequest.UrlReferrer.ToString();
71 }
72 }
73
74 /**//// <summary>
75 /// 当前请求URL的主机名
76 /// </summary>
77 public static string CurHostName
78 {
79 get
80 {
81 if (ConvertUtility.IsNull(SiteUtility.CurRequest.Url))
82 return string.Empty;
83 return SiteUtility.CurRequest.Url.Host;
84 }
85 }
86
87 /**//// <summary>
88 /// 当前请求URL的主机名和端口信息
89 /// </summary>
90 public static string CurFullHostName
91 {
92 get
93 {
94 if (!SiteUtility.CurRequest.Url.IsDefaultPort)
95 {
96 return string.Format("{0}:{1}", SiteUtility.CurRequest.Url.Host, SiteUtility.CurRequest.Url.Port.ToString());
97 }
98 return CurHostName;
99 }
100 }
101
102 /**//// <summary>
103 /// 当前页面文件的完整物理路径
104 /// </summary>
105 public static string CurPhysicalPath
106 {
107 get
108 {
109 return SiteUtility.CurRequest.PhysicalPath;
110 }
111 }
112
113 /**//// <summary>
114 /// 当前页面文件名
115 /// </summary>
116 public static string CurPageName
117 {
118 get
119 {
120 string[] urlArr = SiteUtility.CurRequest.Url.AbsolutePath.Split('/');
121 return urlArr[urlArr.Length - 1];
122 }
123 }
124
125 /**//// <summary>
126 /// 当前应用程序的完整物理路径
127 /// </summary>
128 public static string CurPhysicalApplicationPath
129 {
130 get
131 {
132 return SiteUtility.CurRequest.PhysicalApplicationPath;
133 }
134 }
135
136 /**//// <summary>
137 /// 远程客户端的IP地址
138 /// </summary>
139 public static string ClientIP
140 {
141 get
142 {
143 return SiteUtility.CurRequest.UserHostAddress;
144 }
145 }
146
147 /**//// <summary>
148 /// 远程客户端的DNS名称
149 /// </summary>
150 public static string ClientDNSName
151 {
152 get
153 {
154 return SiteUtility.CurRequest.UserHostName;
155 }
156 }
157
158 /**//// <summary>
159 /// 获取当前请求Form对象
160 /// </summary>
161 public static NameValueCollection Form
162 {
163 get
164 {
165 return SiteUtility.CurRequest.Form;
166 }
167 }
168
169 /**//// <summary>
170 /// 获取当前请求QueryString对象
171 /// </summary>
172 public static NameValueCollection QueryString
173 {
174 get
175 {
176 return SiteUtility.CurRequest.QueryString;
177 }
178 }
179
180 #endregion
181
182 方法#region 方法
183
184 /**//// <summary>
185 /// 获取web服务器指定名称的变量值
186 /// </summary>
187 public static string GetServerVariable(string name)
188 {
189 if (SiteUtility.CurRequest.ServerVariables[name] == null)
190 {
191 return "";
192 }
193 return SiteUtility.CurRequest.ServerVariables[name].ToString();
194 }
195
196 /**//// <summary>
197 /// 获取指定名称的http头变量信息
198 /// </summary>
199 public static string GetHeadValue(string name)
200 {
201 if (SiteUtility.CurRequest.Headers[name] == null)
202 {
203 return "";
204 }
205 return SiteUtility.CurRequest.Headers[name].ToString();
206 }
207
208 /**//// <summary>
209 /// 获取string类型的url参数值
210 /// </summary>
211 public static string GetQueryString(string name)
212 {
213 return ConvertUtility.ConvertToString(SiteUtility.CurRequest.QueryString[name]);
214 }
215
216 /**//// <summary>
217 /// 获取int类型的url参数值
218 /// </summary>
219 public static int GetQueryInt(string name, int defaultValue)
220 {
221 return ConvertUtility.ConvertToInt(SiteUtility.CurRequest.QueryString[name], defaultValue);
222 }
223
224 /**//// <summary>
225 /// 获取float类型的url参数值
226 /// </summary>
227 public static float GetQueryFloat(string name, float defaultValue)
228 {
229 return ConvertUtility.ConvertToFloat(SiteUtility.CurRequest.QueryString[name], defaultValue);
230 }
231
232 /**//// <summary>
233 /// 获取decimal类型的url参数值
234 /// </summary>
235 public static decimal GetQueryDecimal(string name, decimal defaultValue)
236 {
237 return ConvertUtility.ConvertToDecimal(SiteUtility.CurRequest.QueryString[name], defaultValue);
238 }
239
240 /**//// <summary>
241 /// 获取double类型的url参数值
242 /// </summary>
243 public static double GetQueryDouble(string name, double defaultValue)
244 {
245 return ConvertUtility.ConvertToDouble(SiteUtility.CurRequest.QueryString[name], defaultValue);
246 }
247
248 /**//// <summary>
249 /// 获取DateTime类型的url参数值
250 /// </summary>
251 public static DateTime GetQueryDateTime(string name)
252 {
253 return ConvertUtility.ConvertToDateTime(SiteUtility.CurRequest.QueryString[name]);
254 }
255
256 /**//// <summary>
257 /// 获取string类型的Form参数值
258 /// </summary>
259 public static string GetFormString(string name)
260 {
261 return ConvertUtility.ConvertToString(SiteUtility.CurRequest.Form[name]);
262 }
263
264 /**//// <summary>
265 /// 获取int类型的Form参数值
266 /// </summary>
267 public static int GetFormInt(string name, int defaultValue)
268 {
269 return ConvertUtility.ConvertToInt(SiteUtility.CurRequest.Form[name], defaultValue);
270 }
271
272 /**//// <summary>
273 /// 获取float类型的Form参数值
274 /// </summary>
275 public static float GetFormFloat(string name, float defaultValue)
276 {
277 return ConvertUtility.ConvertToFloat(SiteUtility.CurRequest.Form[name], defaultValue);
278 }
279
280 /**//// <summary>
281 /// 获取double类型的Form参数值
282 /// </summary>
283 public static double GetFormDouble(string name, double defaultValue)
284 {
285 return ConvertUtility.ConvertToDouble(SiteUtility.CurRequest.Form[name], defaultValue);
286 }
287
288 /**//// <summary>
289 /// 获取decimal类型的Form参数值
290 /// </summary>
291 public static decimal GetFormDecimal(string name, decimal defaultValue)
292 {
293 return ConvertUtility.ConvertToDecimal(SiteUtility.CurRequest.Form[name], defaultValue);
294 }
295
296 /**//// <summary>
297 /// 获取DateTime类型的Form参数值
298 /// </summary>
299 public static DateTime GetFormDateTime(string name)
300 {
301 return ConvertUtility.ConvertToDateTime(SiteUtility.CurRequest.Form[name]);
302 }
303
304 /**//// <summary>
305 /// 获取远程客户端指定名称的Cookie对象,返回HttpCookie类型
306 /// </summary>
307 public static HttpCookie GetCookie(string name)
308 {
309 return SiteUtility.CurRequestCookies[name];
310 }
311
312 /**//// <summary>
313 /// 获取远程客户端指定名称的Cookie对象的值,如果为空返回string.Empty
314 /// </summary>
315 public static string GetCookieValue(string name)
316 {
317 if (ConvertUtility.IsNull(GetCookie(name)))
318 {
319 return string.Empty;
320 }
321 return GetCookie(name).Value;
322 }
323
324 /**//// <summary>
325 /// 获取远程客户端指定名称的Session对象,返回object类型
326 /// </summary>
327 public static object GetSession(string name)
328 {
329 return SiteUtility.CurSession[name];
330 }
331
332 /**//// <summary>
333 /// 设置远程客户端指定名称的Cookie对象
334 /// </summary>
335 public static void SetResponseCookie(string name, string value, DateTime expireDateTime)
336 {
337 HttpCookie cookie = GetCookie(name);
338 if (ConvertUtility.IsNull(cookie))
339 {
340 cookie = new HttpCookie(name, value);
341 cookie.Expires = expireDateTime;
342 SiteUtility.CurResponseCookies.Add(cookie);
343 }
344 else
345 {
346 cookie.Value = value;
347 cookie.Expires = expireDateTime;
348 SiteUtility.CurResponseCookies.Set(cookie);
349 }
350 }
351
352 /**//// <summary>
353 /// 设置远程客户端Cookie对象
354 /// </summary>
355 public static void SetResponseCookie(HttpCookie cookie)
356 {
357 if (GetCookie(cookie.Name) != null)
358 {
359 SiteUtility.CurResponseCookies.Set(cookie);
360 }
361 else
362 {
363 SiteUtility.CurResponseCookies.Add(cookie);
364 }
365 }
366
367 /**//// <summary>
368 /// 设置当前浏览器的Session对象
369 /// </summary>
370 public static void SetSession(string name, string value)
371 {
372 SiteUtility.CurSession[name] = value;
373 }
374
375 #endregion
376 }
377}
378