当前位置: 首页 > 编程语言 > C#

登录网站并使用cookie获取其他页面的来源分享

时间:2023-04-11 03:38:57 C#

登录网站并使用cookie获取其他页面的来源我正在尝试登录TVRage网站并获取我的节目页面的源代码。我已成功登录(我已经检查了我的发布请求的响应)但是当我尝试在“我的显示”页面上执行GET请求时,我被重定向到登录页面。这是我用来登录的代码:privatestringLoginToTvRage(){stringloginUrl="http://www.tvrage.com/login.php";stringformParams=string.Format("login_name={0}&login_pass={1}","xxx","xxxx");字符串cookieHeader;WebRequestreq=WebRequest.Create(loginUrl);req.ContentType="application/x-www-form-urlencoded";req.Method="POST";byte[]bytes=Encoding.ASCII.GetBytes(formParams);req.ContentLength=bytes.Length;使用(Streamos=req.GetRequestStream()){os.Write(bytes,0,bytes.Length);}WebResponseresp=req.GetResponse();cookieHeader=resp.Headers["Set-cookie"];字符串响应流;使用(StreamReadersr=newStreamReader(resp.GetResponseStream())){responseStream=sr.ReadToEnd();}返回cookieHeader;然后我将cookieHeader传递给这个应该获取“我的节目”页面源的方法:privatestringGetSourceForMyShowsPage(stringcookieHeader){stringpageSource;stringgetUrl="http://www.tvrage.com/mytvrage.php?page=myshows";WebRequestgetRequest=WebRequest.克里吃(getUrl);getRequest.Headers.Add("Cookie",cookieHeader);WebResponsegetResponse=getRequest.GetResponse();使用(StreamReadersr=newStreamReader(getResponse.GetResponseStream())){pageSource=sr.ReadToEnd();}返回页面源;我一直在使用上一个问题作为指导,但我不知道为什么我的代码不起作用下面是使用WebClient的代码的简化和工作版本:以上是C#学习教程:登录网站并使用cookie获取其他页面源共享的完整内容。如果对大家有用,需要进一步了解C#学习教程,希望大家多多关注—classProgram{staticvoidMain(){varshows=GetSourceForMyShowsPage();Console.WriteLine(显示);}staticstringGetSourceForMyShowsPage(){using(varclient=newWebClientEx()){varvalues=newNameValueCollection{{"login_name","xxx"},{"login_pass","xxxx"},};//验证client.UploadValues("http://www.tvrage.com/login.php",values);//下载想要的页面returnclient.DownloadString("http://www.tvrage.com/mytvrage.php?page=myshows");}}}//////带有cookie容器的自定义WebClient///publicclassWebClientEx:WebClient{publicCookieContainerCookieContainer{get;私有集;}publicWebClientEx(){CookieContainer=newCookieContainer();}protectedoverrideWebRequestGetWebRequest(Uriaddress){varrequest=base.GetWebRequest(address);if(requestisHttpWebRequest){(requestasHttpWebRequest).CookieContainer=CookieContainer;}返回请求;}}本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: