C#.NET Request相关操作

来源:互联网 发布:如何绕过网络行为控制 编辑:程序博客网 时间:2024/06/18 09:50

http://www.cnblogs.com/livexy/archive/2010/07/05/1771635.html

using System;

using System.Web;
using System.Text;

namespace Pub.Class
{
///<summary>
/// Requests操作类
///</summary>
publicclass Request2 {
#region Get/GetInt/GetFloat
///<summary>
/// 接收传值
///</summary>
///<param name="VarName">参数名称</param>
///<returns>参数对应的值</returns>
staticpublic 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>
staticpublicint GetInt(string varName, int defValue) { return Get(varName).ToInt(defValue); }
///<summary>
/// GetFloat
///</summary>
///<param name="varName"></param>
///<param name="defValue"></param>
///<returns></returns>
staticpublicfloat GetFloat(string varName, int defValue) { return Get(varName).ToFloat(defValue); }
#endregion

#region GetQ/GetQInt/GetQFloat
///<summary>
/// 取URL上的参数
///</summary>
///<param name="VarName">参数名</param>
///<returns>返回参数</returns>
staticpublic 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>
staticpublicint GetQInt(string varName, int defValue) { return GetQ(varName).ToInt(defValue); }
///<summary>
/// GetQFloat
///</summary>
///<param name="varName"></param>
///<param name="defValue"></param>
///<returns></returns>
staticpublicfloat GetQFloat(string varName, int defValue) { return GetQ(varName).ToFloat(defValue); }
#endregion

#region GetF/GetFInt/GetFFloat
///<summary>
/// 取POST提交的数据
///</summary>
///<param name="VarName">名称</param>
///<returns>返回值</returns>
staticpublic 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>
staticpublicint GetFInt(string varName, int defValue) { return GetF(varName).ToInt(defValue); }
///<summary>
/// GetFFloat
///</summary>
///<param name="varName"></param>
///<param name="defValue"></param>
///<returns></returns>
staticpublicfloat GetFFloat(string varName, int defValue) { return GetF(varName).ToFloat(defValue); }
#endregion

#region IsPost/IsGet
///<summary>
/// 判断当前页面是否接收到了Post请求
///</summary>
///<returns>是否接收到了Post请求</returns>
publicstaticbool IsPost()
{
return HttpContext.Current.Request.HttpMethod.Equals("POST");
}
///<summary>
/// 判断当前页面是否接收到了Get请求
///</summary>
///<returns>是否接收到了Get请求</returns>
publicstaticbool IsGet()
{
return HttpContext.Current.Request.HttpMethod.Equals("GET");
}
#endregion

#region 服务器变量名
///<summary>
/// 返回指定的服务器变量信息
///
///</summary>
///<param name="strName">服务器变量名</param>
///<returns>服务器变量信息</returns>
publicstaticstring 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>
publicstaticstring GetRawUrl()
{
return HttpContext.Current.Request.RawUrl;
}
///<summary>
/// 判断当前访问是否来自浏览器软件
///</summary>
///<returns>当前访问是否来自浏览器软件</returns>
publicstaticbool 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)returntrue;
}
returnfalse;
}
///<summary>
/// 判断是否来自搜索引擎链接
///</summary>
///<returns>是否来自搜索引擎链接</returns>
publicstaticbool IsSearchEnginesGet() {
if (HttpContext.Current.Request.UrlReferrer!=null) {
string[] strArray=newstring[] {"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)returntrue;
}
}
returnfalse;
}
///<summary>
/// 获得当前页面的名称
///</summary>
///<returns>当前页面的名称</returns>
publicstaticstring GetPageName()
{
string [] urlArr= HttpContext.Current.Request.Url.AbsolutePath.Split('/');
return urlArr[urlArr.Length-1].ToLower();
}
///<summary>
/// 返回表单或Url参数的总个数
///</summary>
///<returns></returns>
publicstaticint GetParamCount()
{
return HttpContext.Current.Request.Form.Count+ HttpContext.Current.Request.QueryString.Count;
}
///<summary>
/// GET ParamCount
///</summary>
///<returns></returns>
publicstaticint GetQParamCount() { return (HttpContext.Current.Request.QueryString.Count); }
///<summary>
/// POST ParamCount
///</summary>
///<returns></returns>
publicstaticint GetFParamCount() { return (HttpContext.Current.Request.Form.Count); }
#endregion

#region GetCurrentFullHost/GetHost/GetIP/GetUrl/GetReferrer/SaveRequestFile/GetOS/GetBrowser
///<summary>
/// 取全IP包括端口
///</summary>
///<returns>IP和端口</returns>
publicstaticstring GetCurrentFullHost()
{
HttpRequest request
= HttpContext.Current.Request;
if (!request.Url.IsDefaultPort)
returnstring.Format("{0}:{1}", request.Url.Host, request.Url.Port.ToString());
return request.Url.Host;
}
///<summary>
/// 取主机名
///</summary>
///<returns></returns>
publicstaticstring GetHost() { return HttpContext.Current.Request.Url.Host; }
///<summary>
/// 前台URL
///</summary>
///<returns></returns>
publicstaticstring GetUrl() { return HttpContext.Current.Request.Url.ToString(); }
///<summary>
/// 来源URL
///</summary>
///<returns></returns>
publicstaticstring 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>
publicstaticvoid 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>
publicstaticstring 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];//找到不是内网的地址
}
}
}
elseif (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>
publicstaticstring GetOS() {
HttpBrowserCapabilities bc
=new HttpBrowserCapabilities();
bc
= System.Web.HttpContext.Current.Request.Browser;
return bc.Platform;
}
#endregion
#region GetBrowser
///<summary>
/// 取游览器
///</summary>
///<returns>返回游览器</returns>
publicstaticstring GetBrowser()
{
HttpBrowserCapabilities bc
=new HttpBrowserCapabilities();
bc
= System.Web.HttpContext.Current.Request.Browser;
return bc.Type;
}
#endregion
#endregion
}
}
0 0
原创粉丝点击