302重定向,MVC中的Get,Post请求。
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请求。的更多相关文章
- asp.net MVC中防止跨站请求攻击(CSRF)的ajax用法
参考: Preventing Cross-Site Request Forgery (CSRF) AttacksValidating .NET MVC 4 anti forgery tokens in ...
- ASP.NET MVC中防止跨站请求攻击(CSRF)
转载 http://kevintsengtw.blogspot.co.nz/2013/01/aspnet-mvc-validateantiforgerytoken.html 在 ASP.NET M ...
- Spring MVC中如何解决POST请求中文乱码问题,GET的又如何处理呢
在web.xml中配置过滤器 GET请求乱码解决: 在Tomcat中service.xml中
- 【Spring MVC】spring mvc中相同的url请求返回不同的结果
在项目中凡是使用Spring MVC这种控制器的,大多都是返回JSON数据对象,或者JSP页面. 但是相同的URL请求如何让他自动的选择放回的是什么? 在这里有由于鄙人没有亲自测试过,就不敢乱贴代码, ...
- MVC中如何避免POST请求中出现的重复提交
使用惯了Asp.Net的服务器控件了, 突然转到MVC框架上来遇到这么个问题. 比如说网速慢的时候, 用户频繁的点击提交按钮, 或者是按F5刷新页面等等.解决方法很简单. 解决方案 1. 在页面生成时 ...
- 如何在.Net Mvc中让Get,Post请求访问同一个Action的方法
[HttpPost] [ActionName("Index")] public ActionResult Post(Models.WeChatRequestModel model) ...
- Asp.net MVC中Route的理解
在Asp.net MVC中,对于一个请求,是通过路由找到对应的Controller类中的对应Action,并与model进行交互,最后返回到view. 就是说Asp.net MVC是用Route来定义 ...
- ASP.NET MVC中使用Ninject
ASP.NET MVC中使用Ninject 在[ASP.NET MVC 小牛之路]系列上一篇文章(依赖注入(DI)和Ninject)的末尾提到了在ASP.NET MVC中使用Ninject要做的两件事 ...
- Asp.net MVC 中使用 Ninject 实现依赖注入
松耦合.针对抽象编程.不针对实现编程是面向对象设计的原则.依赖注入就是,在一个类的内部,不通过创建对象的实例而能够获得实现了某个公开接口的对象引用.所谓的控制反转也是相同的意思.把依赖的创建转移到了使 ...
- Chrome在302重定向的时候对原请求产生2次请求的问题说明
这个问题应该确确实实是一个Chrome的BUG,我在自己的编程环境中发现,并在多个服务器,多个编程语言的运行环境,以及多个浏览器下都测试过,都看到有2次请求出现.为了证明不是自己环境的问题,我也特意去 ...
随机推荐
- NavBarControl 左侧菜单
(1)示例图片 具体实现: 一. using DevExpress.XtraNavBar; 二. 从窗体上拖一个 NavBarControl 控件 命名为:nbcLeft 三.窗体OnLoad 事件 ...
- 找出数组中出现奇数次的元素<异或的应用>
点击打开链接:百度面试题之找出数组中之出现一次的两个数(异或的巧妙应用) 题目描述|:给定一个包含n个整数的数组a,其中只有一个整数出现奇数次,其他整数都出现偶数次,请找出这个整数 使用异或操作,因为 ...
- 《细说 new与 malloc 的 10 点区别》
http://www.jobbole.com/members/melonstreet/
- LabView 快捷键
对象调整和移动Shift-click 选择多个对象,在现有选择的基础上添加对象(方向键) 以一个像素为单位移动所选对象Shift- 以几个像素为单位移动所选对象Shift-click (拖动对象) 在 ...
- win2003 安装itunes ----iphone4s
工具包下载:http://download.csdn.net/detail/trassion/5852663 在windows 2003 上安装itunes 8.2.0.10 ,会提示 AppleMo ...
- Tomcat的server.xml(中文版)
原文地址: http://www.blogjava.net/ranxiang/articles/23145.html <!-- Example Server Configuration File ...
- RedHat7安装Nginx及第三方模块
编译安装Nginx 先安装编译过程中所需依赖包# yum -y install gcc pcre-devel openssl-devel zlib-devel jemalloc(更好的内存管理)# w ...
- boost.log要点笔记
span.kw { color: #007020; font-weight: bold; } code > span.dt { color: #902000; } code > span. ...
- media queries 媒体查询使用
media queries 翻译过来就是媒体查询,media 指的媒体类型.那么有哪些类型呢,常用的有 screen(屏幕).打印(print),个人理解就是它所在的不同终端. 常用的用法:1,< ...
- 自己写的demo---声明异常同时处理异常,或者继续抛出异常
package exception; public class exception { public static void main(String args[]) { /*** * 不能对类型 ex ...