C#.NET Request相关操作
2010-07-20 22:51
183 查看
using System; using System.Web; using System.Text; namespace Pub.Class { /// <summary> /// Requests操作类 /// </summary> public class Request2 { #region Get/GetInt/GetFloat /// <summary> /// 接收传值 /// </summary> /// <param name="VarName">参数名称</param> /// <returns>参数对应的值</returns> static public String Get(String VarName) { string varValue = ""; if (HttpContext.Current.Request[VarName]!=null) varValue = HttpContext.Current.Request[VarName].ToString(); return varValue; } /// <summary> /// GetInt /// </summary> /// <param name="varName"></param> /// <param name="defValue"></param> /// <returns></returns> static public int GetInt(string varName, int defValue) { return Get(varName).ToInt(defValue); } /// <summary> /// GetFloat /// </summary> /// <param name="varName"></param> /// <param name="defValue"></param> /// <returns></returns> static public float GetFloat(string varName, int defValue) { return Get(varName).ToFloat(defValue); } #endregion #region GetQ/GetQInt/GetQFloat /// <summary> /// 取URL上的参数 /// </summary> /// <param name="VarName">参数名</param> /// <returns>返回参数</returns> static public String GetQ(String VarName) { string varValue = ""; if (HttpContext.Current.Request.QueryString[VarName] != null) varValue = HttpContext.Current.Request.QueryString[VarName].ToString(); return varValue; } /// <summary> /// GetQInt /// </summary> /// <param name="varName"></param> /// <param name="defValue"></param> /// <returns></returns> static public int GetQInt(string varName, int defValue) { return GetQ(varName).ToInt(defValue); } /// <summary> /// GetQFloat /// </summary> /// <param name="varName"></param> /// <param name="defValue"></param> /// <returns></returns> static public float GetQFloat(string varName, int defValue) { return GetQ(varName).ToFloat(defValue); } #endregion #region GetF/GetFInt/GetFFloat /// <summary> /// 取POST提交的数据 /// </summary> /// <param name="VarName">名称</param> /// <returns>返回值</returns> static public String GetF(String VarName) { string varValue = ""; if (HttpContext.Current.Request.Form[VarName]!=null) varValue = HttpContext.Current.Request.Form[VarName].ToString(); return varValue; } /// <summary> /// GetFInt /// </summary> /// <param name="varName"></param> /// <param name="defValue"></param> /// <returns></returns> static public int GetFInt(string varName, int defValue) { return GetF(varName).ToInt(defValue); } /// <summary> /// GetFFloat /// </summary> /// <param name="varName"></param> /// <param name="defValue"></param> /// <returns></returns> static public float GetFFloat(string varName, int defValue) { return GetF(varName).ToFloat(defValue); } #endregion #region IsPost/IsGet /// <summary> /// 判断当前页面是否接收到了Post请求 /// </summary> /// <returns>是否接收到了Post请求</returns> public static bool IsPost() { return HttpContext.Current.Request.HttpMethod.Equals("POST"); } /// <summary> /// 判断当前页面是否接收到了Get请求 /// </summary> /// <returns>是否接收到了Get请求</returns> public static bool IsGet() { return HttpContext.Current.Request.HttpMethod.Equals("GET"); } #endregion #region 服务器变量名 /// <summary> /// 返回指定的服务器变量信息 /// /// </summary> /// <param name="strName">服务器变量名</param> /// <returns>服务器变量信息</returns> public static string GetServerString(string strName) { if (HttpContext.Current.Request.ServerVariables[strName] == null) return ""; return HttpContext.Current.Request.ServerVariables[strName].ToString(); } #endregion #region GetRawUrl/IsBrowserGet/IsSearchEnginesGet/GetPageName/GetQParamCount/GetFParamCount/GetParamCount/ /// <summary> /// 获取当前请求的原始 URL(URL 中域信息之后的部分,包括查询字符串(如果存在)) /// </summary> /// <returns>原始 URL</returns> public static string GetRawUrl() { return HttpContext.Current.Request.RawUrl; } /// <summary> /// 判断当前访问是否来自浏览器软件 /// </summary> /// <returns>当前访问是否来自浏览器软件</returns> public static bool IsBrowserGet() { string[] BrowserName = {"ie", "opera", "netscape", "mozilla", "konqueror", "firefox"}; string curBrowser = HttpContext.Current.Request.Browser.Type.ToLower(); for (int i = 0; i < BrowserName.Length; i++) { if (curBrowser.IndexOf(BrowserName[i]) >= 0) return true; } return false; } /// <summary> /// 判断是否来自搜索引擎链接 /// </summary> /// <returns>是否来自搜索引擎链接</returns> public static bool IsSearchEnginesGet() { if (HttpContext.Current.Request.UrlReferrer != null) { string[] strArray = new string[] { "google", "yahoo", "msn", "baidu", "sogou", "sohu", "sina", "163", "lycos", "tom", "yisou", "iask", "soso", "gougou", "zhongsou" }; string str = HttpContext.Current.Request.UrlReferrer.ToString().ToLower(); for (int i = 0; i < strArray.Length; i++) { if (str.IndexOf(strArray[i]) >= 0) return true; } } return false; } /// <summary> /// 获得当前页面的名称 /// </summary> /// <returns>当前页面的名称</returns> public static string GetPageName() { string [] urlArr = HttpContext.Current.Request.Url.AbsolutePath.Split('/'); return urlArr[urlArr.Length - 1].ToLower(); } /// <summary> /// 返回表单或Url参数的总个数 /// </summary> /// <returns></returns> public static int GetParamCount() { return HttpContext.Current.Request.Form.Count + HttpContext.Current.Request.QueryString.Count; } /// <summary> /// GET ParamCount /// </summary> /// <returns></returns> public static int GetQParamCount() { return (HttpContext.Current.Request.QueryString.Count); } /// <summary> /// POST ParamCount /// </summary> /// <returns></returns> public static int GetFParamCount() { return (HttpContext.Current.Request.Form.Count); } #endregion #region GetCurrentFullHost/GetHost/GetIP/GetUrl/GetReferrer/SaveRequestFile/GetOS/GetBrowser /// <summary> /// 取全IP包括端口 /// </summary> /// <returns>IP和端口</returns> public static string GetCurrentFullHost() { HttpRequest request = HttpContext.Current.Request; if (!request.Url.IsDefaultPort) return string.Format("{0}:{1}", request.Url.Host, request.Url.Port.ToString()); return request.Url.Host; } /// <summary> /// 取主机名 /// </summary> /// <returns></returns> public static string GetHost() { return HttpContext.Current.Request.Url.Host; } /// <summary> /// 前台URL /// </summary> /// <returns></returns> public static string GetUrl() { return HttpContext.Current.Request.Url.ToString(); } /// <summary> /// 来源URL /// </summary> /// <returns></returns> public static string GetReferrer() { string str = null; try { str = GetServerString("HTTP_REFERER").Trim(); if (str.Length==0) str = HttpContext.Current.Request.UrlReferrer.ToString(); } catch { } if (str == null) return ""; return str; } /// <summary> /// 保存Request文件 /// </summary> /// <param name="path">保存到文件名</param> public static void SaveRequestFile(string path) { if (HttpContext.Current.Request.Files.Count > 0) HttpContext.Current.Request.Files[0].SaveAs(path); } #region GetIP /// <summary> /// 取IP /// </summary> /// <returns>返回IP</returns> public static string GetIP() { string result = String.Empty; result = HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"]; if (result != null && result != String.Empty) {//可能有代理 if (result.IndexOf(".") == -1) result = null; else { if (result.IndexOf(",") != -1) {//有“,”,估计多个代理。取第一个不是内网的IP。 result = result.Replace(" ", "").Replace("'", ""); string[] temparyip = result.Split(",;".ToCharArray()); for (int i = 0; i < temparyip.Length; i++) { if (temparyip[i].IsIP() && temparyip[i].Substring(0, 3) != "10." && temparyip[i].Substring(0, 7) != "192.168" && temparyip[i].Substring(0, 7) != "172.16.") { return temparyip[i]; //找到不是内网的地址 } } } else if (result.IsIP()) //代理即是IP格式 return result; else result = null; //代理中的内容 非IP,取IP } } string IpAddress = (HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"] != null && HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"] != String.Empty) ? HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"] : HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"]; if (null == result || result == String.Empty) result = HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"]; if (result == null || result == String.Empty) result = HttpContext.Current.Request.UserHostAddress; return result; } #endregion #region GetOS /// <summary> /// 取操作系统 /// </summary> /// <returns>返回操作系统</returns> public static string GetOS() { HttpBrowserCapabilities bc = new HttpBrowserCapabilities(); bc = System.Web.HttpContext.Current.Request.Browser; return bc.Platform; } #endregion #region GetBrowser /// <summary> /// 取游览器 /// </summary> /// <returns>返回游览器</returns> public static string GetBrowser() { HttpBrowserCapabilities bc = new HttpBrowserCapabilities(); bc = System.Web.HttpContext.Current.Request.Browser; return bc.Type; } #endregion #endregion } }
相关文章推荐
- [转]C#.NET Request相关操作
- C#.NET Request相关操作
- C#.NET Request相关操作
- C#.NET Request相关操作
- C#.NET Request相关操作
- C#.NET Request相关操作
- Visual Studio 2017中使用正则修改部分内容 如何使用ILAsm与ILDasm修改.Net exe(dll)文件 C#学习-图解教程(1):格式化数字字符串 小程序开发之图片转Base64(C#、.Net) jquery遍历table为每一个单元格取值及赋值 。net加密解密相关方法 .net关于坐标之间一些简单操作
- ASP.NET Request相关操作
- C#.NET跨线程控件的相关操作
- asp.net c# 操作缓存相关的操作类
- C#时间日期相关操作
- C#网络操作相关的类
- ASP.NET(c#)中取得当前计算机CPU 内存使用率等相关信息
- c#(asp.net)几个不同从前台页面操作后台
- NET平台下的Excel编程|C#操作Excel|Application和ApplicationClass的联系和区别
- 【转】asp.net(c#)使用HttpWebRequest附加携带请求参数以post方式模拟上传大文件(以图片为例)到Web服务器端
- 网络驱动移植之net_device结构体及其相关的操作函数
- C++ STL中Map的相关排序操作:按Key排序和按Value排序 - 编程小径 - 博客频道 - CSDN.NET
- asp.net中窗口相关操作总结(javascript)
- 在C#.net中如何操作XML