问题描述
在A网站,有一个aspx网页,里面代码需要读取cookie,然后返回其中的值。在B网站,有一个网页,通过HttpWebRequest去访问A网站的这个aspx网页,然后获得这个cookie的值。代码主体如下:A网站gettoken.aspxDimtokenCookieAsHttpCookie=Context.Request.Cookies("token")DimresAsStringIftokenCookieIsNothingThenres="未找到令牌!"Elseres=tokenCookie.Item("TokenValue")EndIfResponse.Write(res)B网站xxx.aspxDimmyReqAsNet.HttpWebRequest=Net.WebRequest.Create("http://A/gettoken.aspx")myReq.CookieContainer=NewNet.CookieContainer'这行加不加都没有用DimmyRespAsNet.HttpWebResponse=myReq.GetResponse()DimsAsIO.Stream=myResp.GetResponseStream()DimsrAsNewIO.StreamReader(s,Encoding.UTF8)DimresAsString=sr.ReadToEnd'返回我想要的值sr.Close()myResp.Close()Response.Write(res)'输出token值问题特征是:B网站通过xxx.aspx访问A网站的网页,永远都是返回“未找到令牌!”。但是通过浏览器访问,则是有返回值的。我测来测去,认为问题就出在:通过HttpWebRequest的请求,未附上cookie,所以A网站的Context.Request.Cookies("token")是读不到的。这个问题怎么解决?是不是应该在CookieContainer上Add什么cookie?应该怎么做?
解决方案
解决方案二:
HttpWebRequest.Headers.Add("Cookie","Cookie的值");------------------------------------------------------------------string[]cookies=cookieString.Split(";".ToCharArray());CookieContainercc=newCookieContainer();foreach(stringcookieincookies){cc.SetCookies(newUri("http://domain.com/"),cookie);}HttpWebRequest.CookieContainer=cc;
解决方案三:
引用1楼的回复:
HttpWebRequest.Headers.Add("Cookie","Cookie的值");------------------------------------------------------------------string[]cookies=cookieString.Split(";".ToCharArray());CookieContainerc……
1、HttpWebRequest.Headers.Add("Cookie","Cookie的值")??我怎么知道Cookie的值啊?2、cookieString怎么来的啊?
解决方案四:
请问楼主解决这个问题了么