`
liyonghui160com
  • 浏览: 771764 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

C#模拟POST和GET请求

    博客分类:
  • c#
阅读更多

 

 

 

模拟验证的cookie

 

            CookieContainer baseCookieContainer = new CookieContainer();

            Cookie cookie2 = new Cookie("ASP.NET_SessionId", "sur1dby21qru00ol3bqcamqd");
            cookie2.Domain = "106.37.230.254";
            baseCookieContainer.Add(cookie2);

 

模拟POST提交数据

 

 /// <summary>
        /// 返回LoginOncookie的值
        /// </summary>
        /// <param name="username"></param>
        /// <param name="password"></param>
        /// <returns></returns>
        public Cookie GetLoginOnCookie(String username, String password, CookieContainer cookieContainer)
        {
            string pasturl = "http://106.37.230.254:81/";
            string postData = "__VIEWSTATE=%2FwEPDwUKMTg0NDI4MDE5OGRkj8OrkkOlfYqdhxkeEVV4GsZ6FLw0IioIcl%2BnbwqoGbo%3D&__EVENTVALIDATION=%2FwEWBgKF6pivDAKl1bKzCQK1qbSRCwLoyMm8DwLi44eGDAKAv7D9Co04a1vpmJ%2FQuWDi2GFypJ8LBXRdxHsgxKaj%2FeIzgMJ6&txtUserName=5155555063&txtPassword=1955511&txtIMGCode=&BtnLogin=%E7%99%BB++%E5%BD%95&rcode=";
            Stream outstream = null;
            Stream instream = null;
            StreamReader sr = null;
            HttpWebRequest request = null;

            Encoding encoding = System.Text.Encoding.GetEncoding("utf-8");
            byte[] data = encoding.GetBytes(postData);
            // 准备请求...
            // 设置参数
            request = WebRequest.Create(pasturl) as HttpWebRequest;
            request.Method = "POST";
            request.AllowAutoRedirect = true;
            request.KeepAlive = true;
            request.Referer = "http://106.37.230.254:81/";
            request.Headers.Add(HttpRequestHeader.AcceptCharset, "GBK,utf-8;q=0.7,*;q=0.3");
            request.Headers.Add(HttpRequestHeader.AcceptEncoding, "gzip, deflate");
            request.Headers.Add(HttpRequestHeader.AcceptLanguage, "zh-cn,zh;q=0.8,en-us;q=0.5,en;q=0.3");
            request.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8";
            request.UserAgent = "Mozilla/5.0 (Windows; U; Windows NT 5.2; en-US) AppleWebKit/534.7 (KHTML, like Gecko) Chrome/7.0.517.5 Safari/534.7";
            request.ContentType = "application/x-www-form-urlencoded";
            request.ContentLength = data.Length;
            request.Headers.Add("X-Requested-With", "XMLHttpRequest");
            request.Headers.Add("DNT", "1");

            request.CookieContainer = cookieContainer;


            outstream = request.GetRequestStream();
            outstream.Write(data, 0, data.Length);
            outstream.Close();
            //发送请求并获取相应回应数据
            Cookie LoginOnCookie = null;

            using (HttpWebResponse response = request.GetResponse() as HttpWebResponse)
            {
                if (response.Cookies.Count == 0)
                {
                    LoginOnCookie = null;
                }
                else
                {

                    LoginOnCookie = response.Cookies[0];

                    //直到request.GetResponse()程序才开始向目标网页发送Post请求
                    instream = response.GetResponseStream();
                    sr = new StreamReader(instream, encoding);
                    //返回结果网页(html)代码
                    string content = sr.ReadToEnd();
                }

            }

            return LoginOnCookie;

        }

 

 

模拟GET获取返回cookie,页面内容

 

 public Cookie getCodeCookie(string url,CookieContainer cookieContainer)
        {
            HttpWebRequest request;

            // 设置参数
            request = WebRequest.Create(url) as HttpWebRequest;
            request.Method = "GET";
            request.AllowAutoRedirect = true;
            request.KeepAlive = true;
            request.Referer = "http://106.37.230.254:81/";
            request.Headers.Add(HttpRequestHeader.AcceptCharset, "GBK,utf-8;q=0.7,*;q=0.3");
            request.Headers.Add(HttpRequestHeader.AcceptEncoding, "gzip, deflate");
            request.Headers.Add(HttpRequestHeader.AcceptLanguage, "zh-cn,zh;q=0.8,en-us;q=0.5,en;q=0.3");
            request.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8";
            request.UserAgent = "Mozilla/5.0 (Windows; U; Windows NT 5.2; en-US) AppleWebKit/534.7 (KHTML, like Gecko) Chrome/7.0.517.5 Safari/534.7";
            request.ContentType = "application/x-www-form-urlencoded";
            request.Headers.Add("X-Requested-With", "XMLHttpRequest");
            request.Headers.Add("DNT", "1");
            request.CookieContainer = cookieContainer;
            Cookie CodeCookie = null;

             using (HttpWebResponse response = request.GetResponse() as HttpWebResponse)
            {
                CodeCookie = response.Cookies[0];
                GZipStream g = new GZipStream(response.GetResponseStream(), CompressionMode.Decompress);
                StreamReader myreader = new StreamReader(response.GetResponseStream(), Encoding.GetEncoding("utf-8"));
                String responseText = myreader.ReadToEnd();   
            }

             return CodeCookie;

        }



        public String getStudentInfo(string url,CookieContainer cookieContainer)
        {
            HttpWebRequest request;
            // 设置参数
            request = WebRequest.Create(url) as HttpWebRequest;
            request.Method = "GET";
            request.AllowAutoRedirect = true;
            request.KeepAlive = true;
            request.Referer = "http://106.37.230.254:81/";
            request.Headers.Add(HttpRequestHeader.AcceptCharset, "GBK,utf-8;q=0.7,*;q=0.3");
            request.Headers.Add(HttpRequestHeader.AcceptEncoding, "gzip, deflate");
            request.Headers.Add(HttpRequestHeader.AcceptLanguage, "zh-cn,zh;q=0.8,en-us;q=0.5,en;q=0.3");
            request.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8";
            request.UserAgent = "Mozilla/5.0 (Windows; U; Windows NT 5.2; en-US) AppleWebKit/534.7 (KHTML, like Gecko) Chrome/7.0.517.5 Safari/534.7";
            request.ContentType = "application/x-www-form-urlencoded";
            request.Headers.Add("X-Requested-With", "XMLHttpRequest");
            request.Headers.Add("DNT", "1");
            request.CookieContainer = cookieContainer;
            String studentInfo=String.Empty;

             using (HttpWebResponse response = request.GetResponse() as HttpWebResponse)
            {

                GZipStream g = new GZipStream(response.GetResponseStream(), CompressionMode.Decompress);
                StreamReader myreader = new StreamReader(response.GetResponseStream(), Encoding.GetEncoding("utf-8"));
                studentInfo = myreader.ReadToEnd();   
            }

             return studentInfo;

        }

 

 

 无奈网站出现验证码,切怎么输也不正确,致无法登陆哭 代码留存做个纪念!

 

分享到:
评论

相关推荐

    C#winform工具模拟getpost请求,app防攻击加密源码

    【1】哪些人可以用到 1,不知道咋get、post请求的;...模拟请求串可以自己写,重点是借鉴一下加密方式,如果不会get和post的也可以翻一下里面的局部代码直接拿去用。 【4】留个 E麦 多多交流:guangxfxj圈sina.com

    c# http协议,实现get或post发送请求 并返回内容

    在C#中,我们可以使用`System.Net.Http`命名空间中的HttpClient类来处理HTTP请求。以下是如何使用HttpClient发送GET和POST请求的示例: **GET请求示例:** ```csharp using System.Net.Http; using System....

    C# 模拟Post请求

    本主题聚焦于“C#模拟POST请求”,这是网络编程中的一个关键概念,允许开发者在应用程序中发送数据到服务器,类似于用户通过浏览器提交表单的方式。下面将详细介绍这个知识点及其相关应用。 一、理解HTTP POST请求 ...

    c# http请求模拟

    HTTP请求模拟允许开发者在代码中复现浏览器与服务器间的通信过程,以发送GET、POST等不同类型的请求。本文将深入探讨如何在C#中实现HTTP请求模拟,并以`TestHttpPost`为例,讲解POST请求的实现。 首先,让我们了解...

    c#模拟post发送json和multipart/form-data格式

    在本主题中,我们将深入探讨如何使用C#来模拟POST请求,以便发送JSON和multipart/form-data格式的数据。这两种数据格式在现代网络应用中非常常见,特别是用于API交互和文件上传。 首先,让我们了解JSON(JavaScript...

    C# post模拟提交接收图片存到服务器上

    在C#编程中,模拟POST提交通常用于模拟用户在网页上的表单提交行为,...以上就是使用C#模拟POST提交上传图片到服务器的基本流程和关键知识点。实际应用中,可能需要根据具体的业务需求和服务器端的API进行相应的调整。

    c#模拟浏览器请求

    本文将深入探讨如何使用C#编写控制台程序来模拟浏览器发送HTTP请求,以及实现请求流程的自动化。 首先,我们需要了解HTTP请求的基本结构。一个标准的HTTP请求由以下部分组成:请求行(包括请求方法、URL和HTTP版本...

    c#以POST方式模拟提交表单 - 真功夫

    在理解如何用C#模拟提交表单之前,我们需要先了解HTTP POST请求的基本原理。POST请求是一种用于向服务器发送数据的方法,常用于表单提交等场景。它将数据放在HTTP请求的主体中,而不是URL中。这种方式更适合于传输...

    C#模拟POST

    通过上述步骤,我们已经成功实现了使用C#模拟POST请求的功能。此方法不仅可以用于测试目的,还可以集成到实际的应用程序中,以实现与远程服务的交互。理解这些基本概念对于从事Web开发的程序员来说至关重要。

    C#模拟http请求传输数据

    本项目涉及的关键知识点是“C#模拟http请求传输数据”,这通常指的是使用C#来构造网络请求,以便与远程服务器进行数据交互。在这个过程中,我们将探讨如何在C#的WinForms环境下操作Access数据库,构建JSON数据,并...

    C#模拟Post提交,附Demo,直接引用就能用

    在.NET框架中,C#是一种...通过这个简单的C#模拟POST提交的示例,开发者可以快速地构建自己的HTTP客户端,与任何支持HTTP服务的系统进行交互,而无需依赖第三方库。这个功能强大且易于使用,是C#开发者必备的技能之一。

    C_(WINFORM)实现模拟POST发送请求登录网站

    C# WINFORM实现模拟POST发送请求登录网站 在本篇文章中,我们将探討如何使用C#模拟浏览器post发送请求实现自动登录网站的方法。通过阅读本文,您将了解到如何使用HttpWebRequest和HttpWebResponse类来发送POST请求...

    HttpClient模拟get,post请求并发送请求参数(json等)

    它允许开发者模拟GET和POST等HTTP请求,并可以方便地发送JSON等数据作为请求参数。在本文中,我们将深入探讨如何使用HttpClient进行HTTP请求操作,以及如何处理JSON数据。 首先,我们需要引入HttpClient的相关依赖...

    C#实现通过HttpWebRequest发送POST请求实现网站自动登陆

    本文将详细介绍如何使用C#中的`HttpWebRequest`来发送POST请求,并实现网站的自动登录。 #### 发送POST请求的基本步骤 1. **创建HttpRequest对象**:首先需要创建一个`HttpWebRequest`对象,并设置其URL地址。 2. ...

    C# 模拟Post抓取数据

    总的来说,C#模拟POST抓取数据涉及网络编程、HTTP协议理解、数据解析和可能的并发处理等技能。通过熟练掌握这些知识点,开发者可以构建出强大的网络爬虫系统,高效地从互联网上获取并处理所需的信息。在实践中,务必...

    C# post模拟登陆网站

    总结起来,C#模拟登录网站涉及到网络请求、表单提交、cookies管理和可能的验证码处理。以上就是使用C#进行网站模拟登录的基本步骤和关键点。在实际应用中,可能还需要处理其他细节,如处理重定向、错误处理、解析...

    C#模拟http 发送post或get请求的简单实例

    private string HttpPost(string Url, string postDataStr) { HttpWebRequest request = (HttpWebRequest)WebRequest.Create(Url); request.Method = POST; request.ContentType = application/x-...

    C#实现Http post方式 服务端+客户端源码

    C#实现Http post方式 服务端+客户端源码,修改成你的ip端口,直接运行可用 【核心代码】 //提供一个简单的、可通过编程方式控制的 HTTP 协议侦听器。此类不能被继承。 httpobj = new HttpListener(); //定义url及...

    c#下的http请求通用类(自动实现保留上次请求cookie,自动登录)

    c#下的http请求通用类(自动实现保留上传请求cookie,自动登录)。调用getUrlResponse方法可以获取HttpWebResponse请求对象,调用getUrlRespHtml方法可以获取请求获得的html内容。还可以设置代理IP地址。

    C#模仿http请求到服务器端 上传附件

    以上就是使用C#模拟HTTP请求上传附件的完整过程。这个示例适用于VS2010和2008,但请注意,随着.NET框架的更新,更现代的方法,如使用`HttpClient`类,已经变得更为推荐,因为它提供了更好的性能和易用性。不过,对于...

Global site tag (gtag.js) - Google Analytics