|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
J2EE比较成熟一点,一些比较出名的企业应用软件都是基于J2EE的。以后的发展就不好说了。不过net网页编程比较烦,学.net的话,微软把很多工具都封装好了,学起来可能容易一点。System.Web.HttpCookieCollection是System.Web.HttpContext.Current.Request.Cookies与System.Web.Mvc.Controller.Controller.Cookies的范例,用于猎取客户端扫瞄器传送过去的cookie。
System.Net.CookieCollection是System.Net.HttpWebRequest.CookieContainer顶用到的,用于倡议WebRequest哀求时带上cookie。
成绩场景
在以后的ASP.NETMVC程序中将扫瞄器发过去的cookie一成不变地发给背景一个供应服务的站点。之前的做法是在这个ASP.NETMVC程序中从cookie中读取数据,然后以此数据为参数经由过程WCF挪用背景服务。此次我们盘算弃用WCF,间接用HttpWebRequest基于复杂天真的HTTP来处置。
因而就面对怎样传送cookie的成绩。起首想到的是HttpWebRequest.CookieContainer,但CookieContainer必要的是CookieCollection,我们在MVC程序中经由过程Request.Cookies失掉的倒是HttpCookieCollection。然后,成绩就酿成了怎样将HttpCookieCollection转换为CookieCollection?
办理历程
在stackoverflow上找到了一个办理办法(SendingcookiesusingHttpCookieCollectionandCookieContainer):
- HttpCookieCollectionoCookies=Request.Cookies;for(intj=0;j<oCookies.Count;j++){HttpCookieoCookie=oCookies.Get(j);CookieoC=newCookie();//ConvertbetweentheSystem.Net.CookietoaSystem.Web.HttpCookie...oC.Domain=myRequest.RequestUri.Host;oC.Expires=oCookie.Expires;oC.Name=oCookie.Name;oC.Path=oCookie.Path;oC.Secure=oCookie.Secure;oC.Value=oCookie.Value;myRequest.CookieContainer.Add(oC);}
复制代码
可是这个烦琐的办理办法看着别扭,用着舒服。假如就如许办理成绩,一点成绩感都没有。哪是享用代码,明白是做一天码农,对付一天代码。
好的办理办法老是复杂的、文雅的,必定有更好的办理办法。抱着如许的信心高低求索,在园子里发明一篇冗长的博文(HttpWebRequest和Cookie的一些纪录),个中的一段代码让人长远一亮:
- HttpWebRequest.Headers.Add("Cookie","Cookie的值");
复制代码 cookie不就是httpheader中的一段字符串吗?从这个httpheader中读掏出来,放到另外一个httpheader中不就好了吗?基本用不到HttpCookieCollection与CookieCollection。
办理办法
间接上代码:
- varrequest=WebRequest.Create("http://ws.cnblogs.com/user/hasblog")asHttpWebRequest;request.Headers.Add("Cookie",Request.Headers["Cookie"]);using(varresponse=request.GetResponse()asHttpWebResponse){}
复制代码 HttpCookieCollectiontoCookieCollection的最复杂办法就是既不必HttpCookieCollection,也不必CookieCollection。
是不是实质都是API?有的好像不只是API那么简单的,有的也是一种框架就像MFC一样。有的还是一种思想(就是做软件的思想)(好像很深奥,其实我也不懂^_^) |
|