Use httpRequest to log in to a website, then obtain the program example of the website information

xiaoxiao2021-03-06  114

Use httpRequest to log in to a website, then obtain the program example of the website information

Question: The content of some websites must be viewed after logging in, and its login information is saved in the session variable. In this way, components such as using Asphttp are difficult to properly get the information you want.

SOLUTION: Implemented using HttpRequest and HttpResponse in ASP.NET.

Important: 1. By attaching a cookieContainer to the HTTPRequest object, you can get the cookie of the representative session ID returned after logging. See the login method 2. This cookie is included in a cookieContainer and attached to another HttpRequest request, you can implement the SESSION restore. See getPage method

The source program is as follows:

Gethttpinfo.aspx: <% @ page language = "c #" codebehind = "gethtpinfo.aspx.cs" autoeventwireup = "false" inherits = "pdftest.gettttpinfo"%> Webform1 </ title> <meta content =" Microsoft Visual Studio 7.0 "Name =" Generator "> <meta content =" c # "name =" code_language "> <meta content = "javascript" name = "vs_defaultclientscript"> <meta content = "http://schemas.microsoft.com/intellisense/ie5" name = "vs_targetschema"> </ head> <body> <form id = " Form1 "Method =" post "runat =" server "> </ form> </ body> </ html></p> <p>getHttpInfo.aspx.cs: using System; using System.Collections; using System.ComponentModel; using System.Data; // using System.Data.OleDb; using System.Drawing; using System.Web; using System.Web.SessionState; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.HtmlControls; using System.Net; using System.IO; using System.Text; using System.Text.RegularExpressions; using Microsoft. Data.odbc;</p> <p>namespace PdfTest {/// <summary> /// Summary description for WebForm1./// </ summary> public class getHttpInfo: System.Web.UI.Page {protected static string cookieheader; private void Page_Load (object sender, System. Eventargs e) {// put user code to initialize the page</p> <p>String strresult;</p> <p>if (! HttpContext.Current.Application [ "cookieheader"] = null) {cookieheader = (string) HttpContext.Current.Application [ "cookieheader"];} else {// Login into the website and keep the cookie for the session in The application variableString strlogin = login ("http://www.thesiteyouwanttovisit/theloginpage.asp", "action = & userid = & password =");</p> <p>Strresult = getPage ("http://www.thesiteyouwanttovisit/theloginpage.asp", "action = & data =");</p> <p>// Write the result to htm fileFileStream htmFile = new FileStream ( "c: /save.htm", FileMode.OpenOrCreate); StreamWriter sw = new StreamWriter (htmFile); sw.Write (strResult); sw.Close (); htmFile .Close ();</p> <p>// Output the resultresponse.write (strresult);}</p> <p>Public Static String Login (String Url, String Paramlist) {httpwebresponse res = null; string strresult = "";</p> <p>Try {</p> <p>HttpWebRequest req = (HttpWebRequest) WebRequest.Create (url); req.Method = "POST"; req.ContentType = "application / x-www-form-urlencoded"; req.AllowAutoRedirect = false; CookieContainer cookieCon = new CookieContainer () ; req.cookiecontainer = cookiecon;</p> <p>Stringbuilder urlencoded = new stringbuilder (); char [] reserved = {?, =, &}; Byte [] Somebytes = null;</p> <p>IF (paramlist! = null) {INT i = 0, J; While (i <paramlist.length) {j = paramlist.indexofany (reserved, i); if (j == - 1) {urlencoded.append (httputility. UrlEncode (paramList.Substring (i, paramList.Length-i))); break;} UrlEncoded.Append (HttpUtility.UrlEncode (paramList.Substring (i, ji))); UrlEncoded.Append (paramList.Substring (j, 1 )); i = j 1;} SomeBytes = Encoding.UTF8.GetBytes (UrlEncoded.ToString ()); req.ContentLength = SomeBytes.Length; Stream newStream = req.GetRequestStream (); newStream.Write (SomeBytes, 0, SomeBytes.Length); newStream.Close ();} else {req.ContentLength = 0;} res = (HttpWebResponse) req.GetResponse (); cookieheader = req.CookieContainer.GetCookieHeader (new Uri (url)); HttpContext.Current .Application.lock (); httpContext.current.Application ["cookieheader"] = cookieheader; httpContext.current.Application.unlock ();</p> <p>Stream ReceiveStream = res.GetResponseStream (); Encoding encode = System.Text.Encoding.GetEncoding ( "utf-8"); StreamReader sr = new StreamReader (ReceiveStream, encode); Char [] read = new Char [256]; int Count = Sr.read (Read, 0, 256); While (count> 0) {string str = new string (read, 0, count); strresult = str; count = sr.read (Read, 0, 256) ;}}} Catch (Exception E) {strresult = e.tostring ();} finally {if (res! = null) {res.close ();}}</p> <p>Return Strresult;</p> <p>Public Static String getPage (string url, string paramlist) {httpwebresponse res = null; string strresult = ""</p> <p>Try {</p> <p>HttpWebRequest req = (HttpWebRequest) WebRequest.Create (url); req.Method = "POST"; req.KeepAlive = true; req.ContentType = "application / x-www-form-urlencoded"; CookieContainer cookieCon = new CookieContainer () ; req.CookieContainer = cookieCon; req.CookieContainer.SetCookies (new Uri (url), cookieheader); StringBuilder UrlEncoded = new StringBuilder (); Char [] reserved = {, =, &?}; byte [] SomeBytes = null; IF (paramlist! = null) {INT i = 0, J; While (i <paramlist.length) {j = paramlist.indexofany (reserved, i); if (j == - 1) {urlencoded.append (httputility. UrlEncode (paramList.Substring (i, paramList.Length-i))); break;} UrlEncoded.Append (HttpUtility.UrlEncode (paramList.Substring (i, ji))); UrlEncoded.Append (paramList.Substring (j, 1 )); i = j 1;} SomeBytes = Encoding.UTF8.GetBytes (UrlEncoded.ToString ()); req.ContentLength = SomeBytes.Length; Stream newStream = req.GetRequestStream (); newStream.Write (SomeBytes, 0, Somebytes.length; newstream.close ();} else {req.contentLength = 0;}</p> <p>res = (HttpWebResponse) req.GetResponse (); Stream ReceiveStream = res.GetResponseStream (); Encoding encode = System.Text.Encoding.GetEncoding ( "utf-8"); StreamReader sr = new StreamReader (ReceiveStream, encode); Char [] read = new char [256]; int count = sr.read (Read, 0, 256); while (count> 0) {string str = new string (read, 0, count); strRRESULT = Str; Count = Sr.read (Read, 0, 256);}}}}}} catch (exception e) {strresult = e.tostring ();} finally {if (res! = null) {res.close ();}}</p> <p>Return Strresult;</p> <p>#Region Web Form Designer Generated CodeOverride Protected Void OnNit (Eventargs E) {//// Codegen: This Call is Required by The ASP.NET Web Form Designer./initializationComponent();Base.onInit (E );////> / <Summary> /// Required Method for Designer Support - Do Not Modify ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////>> EventHandler (this.page_load);</p> <p>} #endregion</p> <p>}</p></div><div class="text-center mt-3 text-grey"> 转载请注明原文地址:https://www.9cbs.com/read-96371.html</div><div class="plugin d-flex justify-content-center mt-3"></div><hr><div class="row"><div class="col-lg-12 text-muted mt-2"><i class="icon-tags mr-2"></i><span class="badge border border-secondary mr-2"><h2 class="h6 mb-0 small"><a class="text-secondary" href="tag-2.html">9cbs</a></h2></span></div></div></div></div><div class="card card-postlist border-white shadow"><div class="card-body"><div class="card-title"><div class="d-flex justify-content-between"><div><b>New Post</b>(<span class="posts">0</span>) </div><div></div></div></div><ul class="postlist list-unstyled"> </ul></div></div><div class="d-none threadlist"><input type="checkbox" name="modtid" value="96371" checked /></div></div></div></div></div><footer class="text-muted small bg-dark py-4 mt-3" id="footer"><div class="container"><div class="row"><div class="col">CopyRight © 2020 All Rights Reserved </div><div class="col text-right">Processed: <b>0.068</b>, SQL: <b>9</b></div></div></div></footer><script src="./lang/en-us/lang.js?2.2.0"></script><script src="view/js/jquery.min.js?2.2.0"></script><script src="view/js/popper.min.js?2.2.0"></script><script src="view/js/bootstrap.min.js?2.2.0"></script><script src="view/js/xiuno.js?2.2.0"></script><script src="view/js/bootstrap-plugin.js?2.2.0"></script><script src="view/js/async.min.js?2.2.0"></script><script src="view/js/form.js?2.2.0"></script><script> var debug = DEBUG = 0; var url_rewrite_on = 1; var url_path = './'; var forumarr = {"1":"Tech"}; var fid = 1; var uid = 0; var gid = 0; xn.options.water_image_url = 'view/img/water-small.png'; </script><script src="view/js/wellcms.js?2.2.0"></script><a class="scroll-to-top rounded" href="javascript:void(0);"><i class="icon-angle-up"></i></a><a class="scroll-to-bottom rounded" href="javascript:void(0);" style="display: inline;"><i class="icon-angle-down"></i></a></body></html><script> var forum_url = 'list-1.html'; var safe_token = 'len1lwCuTCIUDFxpvql1ui04Zl_2Fru7sB9iRSXvdqVxsRhMNVzLa1v4e4ujUyoNRzTO0BUdaLsYmThZRR'; var body = $('body'); body.on('submit', '#form', function() { var jthis = $(this); var jsubmit = jthis.find('#submit'); jthis.reset(); jsubmit.button('loading'); var postdata = jthis.serializeObject(); $.xpost(jthis.attr('action'), postdata, function(code, message) { if(code == 0) { location.reload(); } else { $.alert(message); jsubmit.button('reset'); } }); return false; }); function resize_image() { var jmessagelist = $('div.message'); var first_width = jmessagelist.width(); jmessagelist.each(function() { var jdiv = $(this); var maxwidth = jdiv.attr('isfirst') ? first_width : jdiv.width(); var jmessage_width = Math.min(jdiv.width(), maxwidth); jdiv.find('img, embed, iframe, video').each(function() { var jimg = $(this); var img_width = this.org_width; var img_height = this.org_height; if(!img_width) { var img_width = jimg.attr('width'); var img_height = jimg.attr('height'); this.org_width = img_width; this.org_height = img_height; } if(img_width > jmessage_width) { if(this.tagName == 'IMG') { jimg.width(jmessage_width); jimg.css('height', 'auto'); jimg.css('cursor', 'pointer'); jimg.on('click', function() { }); } else { jimg.width(jmessage_width); var height = (img_height / img_width) * jimg.width(); jimg.height(height); } } }); }); } function resize_table() { $('div.message').each(function() { var jdiv = $(this); jdiv.find('table').addClass('table').wrap('<div class="table-responsive"></div>'); }); } $(function() { resize_image(); resize_table(); $(window).on('resize', resize_image); }); var jmessage = $('#message'); jmessage.on('focus', function() {if(jmessage.t) { clearTimeout(jmessage.t); jmessage.t = null; } jmessage.css('height', '6rem'); }); jmessage.on('blur', function() {jmessage.t = setTimeout(function() { jmessage.css('height', '2.5rem');}, 1000); }); $('#nav li[data-active="fid-1"]').addClass('active'); </script>