1.在访问页遇到重定向,Get,Post跳转处理,在跳转后的页面获取访问端的IP,他们的IP是否发生变化。。。

2.重定向处理后获取的IP还是访问端IP,而用Get,Post请求处理后,获取的访问端IP则是处理页的IP。

3.获取客户端IP的代码

   public string GetClientIP()
{
HttpContext current = HttpContext.Current;
string userHostAddress = string.Empty;
if (current != null)
{
if ((current.Session != null) && (current.Session["cnki_sys_user_remote_addr"] != null))
{
userHostAddress = current.Session["cnki_sys_user_remote_addr"].ToString();
if (!string.IsNullOrEmpty(userHostAddress))
{
return userHostAddress;
}
}
userHostAddress = "127.0.0.1";
userHostAddress = current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"];
if (string.IsNullOrEmpty(userHostAddress))
{
userHostAddress = current.Request.ServerVariables["REMOTE_ADDR"];
if (string.IsNullOrEmpty(userHostAddress))
{
userHostAddress = current.Request.UserHostAddress;
}
}
else
{
string[] strArray = userHostAddress.Split(new char[] { ',' });
if ((strArray.Length > ) && !string.IsNullOrEmpty(strArray[strArray.Length - ]))
{
userHostAddress = strArray[strArray.Length - ];
}
}
if (current.Session != null)
{
current.Session["cnki_sys_user_remote_addr"] = userHostAddress;
}
}
return userHostAddress;
}

4.向mvcapi中发出的Post和Get请求,以及返回信息的接收和处理代码。

 public class ECPManage
{
public Result GetResultFromConfig(string config, params string[] para)//config是mvcapi的处理路径,para是参数。
{
string getUidUrl = string.Format(ConfigurationManager.AppSettings[config], para);
string retJSON = SendGet(getUidUrl).TrimStart("?(".ToCharArray()).TrimEnd(')');
using (System.IO.MemoryStream ms = new System.IO.MemoryStream(System.Text.Encoding.UTF8.GetBytes(retJSON)))
{
System.Runtime.Serialization.Json.DataContractJsonSerializer serializer = new System.Runtime.Serialization.Json.DataContractJsonSerializer(typeof(Result));
Result t = (Result)serializer.ReadObject(ms);
return t;
}
}
/// <summary>
/// 发送post请求,返回信息
/// </summary>
/// <param name="uri"></param>
/// <param name="data"></param>
/// <param name="encoding"></param>
/// <returns></returns>
public string SendPost(string uri, string data, string encoding = "utf8")
{
using (WebClient wCient = new WebClient())
{
if ("utf8" == encoding)
{
wCient.Encoding = Encoding.UTF8;
}
else
{
wCient.Encoding = Encoding.Default;
}
return wCient.UploadString(uri, data);
}
}
/// <summary>
/// 发送get请求,返回信息
/// </summary>
/// <param name="uri"></param>
/// <param name="encoding"></param>
/// <returns></returns>
public string SendGet(string uri, string encoding = "utf8")
{
using (WebClient wCient = new WebClient())
{
if ("utf8" == encoding)
{
wCient.Encoding = Encoding.UTF8;
}
else
{
wCient.Encoding = Encoding.Default;
}
return wCient.DownloadString(uri);
}
}
}

302重定向,MVC中的Get,Post请求。的更多相关文章

  1. asp.net MVC中防止跨站请求攻击(CSRF)的ajax用法

    参考: Preventing Cross-Site Request Forgery (CSRF) AttacksValidating .NET MVC 4 anti forgery tokens in ...

  2. ASP.NET MVC中防止跨站请求攻击(CSRF)

    转载   http://kevintsengtw.blogspot.co.nz/2013/01/aspnet-mvc-validateantiforgerytoken.html 在 ASP.NET M ...

  3. Spring MVC中如何解决POST请求中文乱码问题,GET的又如何处理呢

    在web.xml中配置过滤器 GET请求乱码解决: 在Tomcat中service.xml中

  4. 【Spring MVC】spring mvc中相同的url请求返回不同的结果

    在项目中凡是使用Spring MVC这种控制器的,大多都是返回JSON数据对象,或者JSP页面. 但是相同的URL请求如何让他自动的选择放回的是什么? 在这里有由于鄙人没有亲自测试过,就不敢乱贴代码, ...

  5. MVC中如何避免POST请求中出现的重复提交

    使用惯了Asp.Net的服务器控件了, 突然转到MVC框架上来遇到这么个问题. 比如说网速慢的时候, 用户频繁的点击提交按钮, 或者是按F5刷新页面等等.解决方法很简单. 解决方案 1. 在页面生成时 ...

  6. 如何在.Net Mvc中让Get,Post请求访问同一个Action的方法

    [HttpPost] [ActionName("Index")] public ActionResult Post(Models.WeChatRequestModel model) ...

  7. Asp.net MVC中Route的理解

    在Asp.net MVC中,对于一个请求,是通过路由找到对应的Controller类中的对应Action,并与model进行交互,最后返回到view. 就是说Asp.net MVC是用Route来定义 ...

  8. ASP.NET MVC中使用Ninject

    ASP.NET MVC中使用Ninject 在[ASP.NET MVC 小牛之路]系列上一篇文章(依赖注入(DI)和Ninject)的末尾提到了在ASP.NET MVC中使用Ninject要做的两件事 ...

  9. Asp.net MVC 中使用 Ninject 实现依赖注入

    松耦合.针对抽象编程.不针对实现编程是面向对象设计的原则.依赖注入就是,在一个类的内部,不通过创建对象的实例而能够获得实现了某个公开接口的对象引用.所谓的控制反转也是相同的意思.把依赖的创建转移到了使 ...

  10. Chrome在302重定向的时候对原请求产生2次请求的问题说明

    这个问题应该确确实实是一个Chrome的BUG,我在自己的编程环境中发现,并在多个服务器,多个编程语言的运行环境,以及多个浏览器下都测试过,都看到有2次请求出现.为了证明不是自己环境的问题,我也特意去 ...

随机推荐

  1. mysql添加用户权限

    MySQL性能调优my.cnf详解 //登录MYSQLmysql -u root -p//创建用户insert into mysql.user(Host,User,Password) values(‘ ...

  2. 非常棒的jqChart图表插件

    由于项目需要,做一些类似于OA系统的应用时,表格用到的是最多的,那么图表展示就先显得尤为的重要,其中柱柱状图.折线图.饼状图又居多. 之前一直使用的是Chrome下的googleAPI中提供的char ...

  3. sql优化-hint的作用

    目前,oracle采用的是CBR优化器,所以在有些时候,机器会按照自己的意愿去执行sql,当然oracle是根据本身的一些信息来做决定的,比如:统计信息.但有些时候,机器并不一定会按照我们预想的那样去 ...

  4. 用Ajax去读取服务器端的XML格式的数据

    <html> <head></head> <script type="text/javascript"> /*---定义一个全局变量 ...

  5. ListBox重绘

    .NET Framework 类库  ListBox.ItemHeight 属性 当 DrawMode 属性设置为 DrawMode.OwnerDrawFixed 时,所有项具有相同的高度.当 Dra ...

  6. Nginx平台构架 分类: Nginx 2015-07-13 10:55 205人阅读 评论(0) 收藏

    深入理解Nginx模块发开与架构解析读书笔记. nginx在启动后,在unix系统中会以daemon的方式(可以手动关闭 nginx.conf daemon off)在后台运行,后台进程包含一个mas ...

  7. 微信支付 V3版

    本人小菜鸟一仅仅.为了自我学习和交流PHP(jquery,linux,lamp,shell,javascript,server)等一系列的知识,小菜鸟创建了一个群.希望光临本博客的人能够进来交流. 寻 ...

  8. C# DataTable怎么合计字段

    DataTable dt = new DataTable(); var age=dt.Compute("avg(age)",""); var height =d ...

  9. 高性能爬虫为什么使用定制DNS客户端?

    DNS 解析是高性能网络爬虫的瓶颈,主要是因为: 1. 由于域名服务的分布式的特性,DNS解析可能需要多次的请求转发,有时需要几秒甚至更长的时间来解析出相应的IP 地址. 2. 现有的标准库对DNS解 ...

  10. 用FlexSlider制作支付宝2013版幻灯片演示插件

    flexslider制作支付宝2013版幻灯片精美特效,一款非常不错的jQuery特效源码可在下面地址或去源码搜藏网下载适用浏览器:IE8.360.FireFox.Chrome.Safari.Oper ...