使用C#发送Http请求实现模拟登陆实例_C#教程

模拟登陆的原理很简单,就是发送一个Http 请求服务器获得响应,然后客户端获取到cookie即可实现模拟登陆,比如一些抢票软件的原理无非也是这样模拟客户端的cookie 然后发送请求去抢票,然后12306 本文将演示如何用C# 来实现模拟登陆的,推荐一款工具Fiddler,这是一款监听http 请求的利器。废话不多说,我就以博客园为例来实现模拟登陆。首先我登陆博客园 http://passport.cnblogs.com/login.aspx 输入用户名和密码点登陆 就会看到Fiddler 上的相关信息:

Ok,我首先需要发送一个http 请求 ,这个请求时POST的方式,然后用户名和密码就是POST的数据。代码如下:

static CookieContainer GetCookie(string postString, string postUrl)
 {
 CookieContainer cookie = new CookieContainer();

 HttpWebRequest httpRequset = (HttpWebRequest)HttpWebRequest.Create(postUrl);//创建http 请求
httpRequset.CookieContainer = cookie;//设置cookie
httpRequset.Method = "POST";//POST 提交
 httpRequset.KeepAlive = true;
 httpRequset.UserAgent = "Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; rv:11.0) like Gecko";
 httpRequset.Accept = "text/html, application/xhtml+xml, */*";
httpRequset.ContentType = "application/x-www-form-urlencoded";//以上信息在监听请求的时候都有的直接复制过来
byte[] bytes = System.Text.Encoding.UTF8.GetBytes(postString);
httpRequset.ContentLength = bytes.Length;
 Stream stream = httpRequset.GetRequestStream();
stream.Write(bytes, 0, bytes.Length);
 stream.Close();//以上是POST数据的写入
 HttpWebResponse httpResponse = (HttpWebResponse)httpRequset.GetResponse();//获得 服务端响应
 return cookie;//拿到cookie
 }

 拿到cookie 之后我们就可以以用户的什么去用户的后台或者其他的地方:

 static string GetContent(CookieContainer cookie, string url)
{
string content;
HttpWebRequest httpRequest = (HttpWebRequest)HttpWebRequest.Create(url);
httpRequest.CookieContainer = cookie;
httpRequest.Referer = url;
httpRequest.UserAgent = "Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; rv:11.0) like Gecko";
httpRequest.Accept = "text/html, application/xhtml+xml, */*";
httpRequest.ContentType = "application/x-www-form-urlencoded";
httpRequest.Method = "GET";
HttpWebResponse httpResponse = (HttpWebResponse)httpRequest.GetResponse();
using (Stream responsestream = httpResponse.GetResponseStream())
{
using (StreamReader sr = new StreamReader(responsestream, System.Text.Encoding.UTF8))
 {
 content = sr.ReadToEnd();
 }
}
 return content;
 }

 OK 下面是调用 我写的是一个控制台程序:

static void Main(string[] args)
{
string loginstr = "{要post 的登陆数据包括用户名和密码}";
//从登陆的地址获取cookie
CookieContainer cookie = GetCookie(loginstr, "http://passport.cnblogs.com/login.aspx");
 //这个是进入后台地址
 Console.WriteLine(GetContent(cookie, "http://i.cnblogs.com/EditPosts.aspx"));
 Console.Read();
}

可以看到我已经进入了后台了:

如果我是没有登陆的情况下进入这个地址是这样的:

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索c
, 模拟post发送请求
模拟发送http请求
c chart控件使用、c 定时器的使用、c 获取cpu使用率、c 线程使用、dev c 使用教程,以便于您获取更多的相关知识。

时间: 2024-09-19 20:12:55

使用C#发送Http请求实现模拟登陆实例_C#教程的相关文章

使用C#发送Http 请求实现模拟登陆(以博客园为例)

原文:使用C#发送Http 请求实现模拟登陆(以博客园为例)         模拟登陆的原理很简单,就是发送一个Http 请求服务器获得响应,然后客户端获取到cookie即可实现模拟登陆,比如一些抢票软件的原理无非也是这样模拟客户端的cookie 然后发送请求去抢票,然后12306 本文将演示如何用C# 来实现模拟登陆的,推荐一款工具Fiddler,这是一款监听http 请求的利器.废话不多说,我就以博客园为例来实现模拟登陆.首先我登陆博客园 http://passport.cnblogs.co

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

private string HttpPost(string Url, string postDataStr) { HttpWebRequest request = (HttpWebRequest)WebRequest.Create(Url); request.Method = "POST"; request.ContentType = "application/x-www-form-urlencoded"; request.ContentLength = Enco

php发送post请求函数分享_php实例

复制代码 代码如下: function do_post_request($url, $data, $optional_headers = null){ $params = array('http' => array('method' => 'POST','content' => $data )); if ($optional_headers !== null) {$params['http']['header'] = $optional_headers; } $ctx = stream_

C#使用系统方法发送异步邮件完整实例_C#教程

本文实例讲述了C#使用系统方法发送异步邮件.分享给大家供大家参考,具体如下: 项目背景: 最近在对几年前的一个项目进行重构,发现发送邮件功能需要一定的时间来处理,而由于发送是同步的因此导致在发送邮件时无法执行后续的操作 实际上发送邮件后只需要将发送结果写入系统日志即可对其他业务没有任何影响,因此决定将发送邮件操作更改为异步的 由于使用的是C#的邮件类库,而C#本身已经提供了异步发送的功能即只需要将Send方法更改为SendAsync即可,更改方法名并不难但发送后再写入日志就有点难了 因为项目中发

jsp+ajax发送GET请求的方法

 本文实例讲述了ajax发送GET请求,然后通过jsp页面来接收处理的实现方法.分享给大家供大家参考.具体实现方法如下: Ajax发送GET请求 这里用一个实例演示Ajax发送get请求,实例具体要求为一个注册页面,当用户填写完用户名称时,该输入框失去焦点后会通过Ajax向后台发送验证信息,如果用户名不是admin则通过验证,否则不通过验证. 下面先看JSP页面具体信息: 代码如下: <form action="servlet/LoginServlet" method="

python模拟登陆获取和处理发送post request和head数据

今天这篇文章说下如何获取和处理发送post request和head数据. 工具: firefox浏览器及firebug插件. (其他的如httpfox,live http head   ,fiddler,httpwatch  也行) 1.查看分析登陆页面html代码,看是否有iframe 我们写一个自动登录的脚本的时候,先要分析出需要post request和head数据,以及post的网址等.这里,我们先打开firebug开始监控,然后打开网站的登陆页面:/IndexPage/Index.a

请求-有赞模拟登陆返回500错误

问题描述 有赞模拟登陆返回500错误 1C 我用浏览器打开时正常的,但是在程序中为什么就返回500错误了呢?具体代码如下:地址:http://koudaitong.com/v2/account/user/login /// <summary>/// 获取验证码private void 登陆_Load(object sender EventArgs e){txtUserName.Text=""18076549077"";txtPwd.Text="

邮箱登陆发短信-如何用java代码,模拟登陆139邮箱,并用139邮箱自带的短信功能给一个移动用户发送短信

问题描述 如何用java代码,模拟登陆139邮箱,并用139邮箱自带的短信功能给一个移动用户发送短信 RT 要是能说到要用到哪些知识点,以及直接提供相应的代码那就更好了

c#-用C#语言怎么模拟发送post请求数据包并最终下载文件

问题描述 用C#语言怎么模拟发送post请求数据包并最终下载文件 通过一个在线工具模拟发送post请求数据包发送的内容和返回的数据见下面两张截图,问题来了,怎么根据返回的数据下载这个文件.用C#语言怎么写啊 解决方案 在浏览器中下载,同时用fiddler抓包,然后根据fiddler的结果照着模仿 解决方案二: 用FIDDLER确实可行,谢谢