C#发送HTTP请求自动登录Web网站
来源:互联网 发布:java求质数的方法 编辑:程序博客网 时间:2024/05/16 15:06
研究生期间不可少的一项任务——报账,今天8点准时点击财务取票系统(8点开放取票)结果取到了100号,每天财务(具体财务几科就不多说了)差不多就能处理30个左右的号吧!连续好几天了,报个帐我容易吗!哎,不说了,说多了都是泪。只想好好搞研究,争取顺利离开武大。好好加油吧!
下面说说实现的方法,首先发送HTTP请求登陆到系统,你得利用浏览器自带工具(火狐、IE、Chrome都行)查看表单提交的action给谁?Get或者Post请求,参数等等信息。然后得到服务器发你给的Cookie,再发送取票请求,发送的时候要注意带上你的Cookie,否则服务器会认为你没有登录。如果你有好多人密码和账户,则可以利用线程同时多人进行取票。
下面贴出代码,其中里面有些编码我是更加武大财务网站调整的,你要根据你的情况进行调整,否则返回的值会乱码。
(下面的例子中主要是HTTP Get和Post方法,我只用到了Post方法,因为我这边的网站提交都是以Post方法进行提交的)
using System;using System.Collections.Generic;using System.IO;using System.Linq;using System.Net;using System.Text;namespace WebNET{ class LoginWeb { static void Main(string[] args) { string loginUrl = "http://202.114.74.218/web3/login_gr.aspx"; string loginData = "uid=******&pwd=******"; CookieContainer cookies = new CookieContainer(); string loginResult = LoginWeb.HttpPost(loginUrl, loginData, cookies); Console.WriteLine("这是登陆后的界面信息!"); Console.WriteLine(loginResult); //预约明天的票 string checkUrl = "http://202.114.74.218/web3/baobiao/Queue/QueueSystem.aspx"; string checkData = "ImageButton2.x=167&ImageButton2.y=20&deptID=3&dateType=NextDday&timeType=AM"; string checkResult = LoginWeb.HttpPost(checkUrl, checkData, cookies); Console.WriteLine("这是取票结果"); Console.WriteLine(checkResult); Console.ReadKey(); } /************************************************************************/ /* Http Get请求 * url为请求的网址 * data为GET请求参数(格式为:key1=value1&key2=value2) */ /************************************************************************/ public static string HttpGet(string url, string data) { url = url + "?" + data; HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url); request.Method = "GET"; request.ContentType = "text/hmtl;charset=UTF-8"; HttpWebResponse response = (HttpWebResponse)request.GetResponse(); Stream responseStream = response.GetResponseStream(); StreamReader streamReader = new StreamReader(responseStream); string result = streamReader.ReadToEnd(); streamReader.Close(); responseStream.Close(); return result; } /************************************************************************/ /* Http Post 请求 * url为请求的网址 * data为POST请求参数(格式为:key1=value1&key2=value2) * cookie为存储Cookie的容器CookieContainer */ /************************************************************************/ public static string HttpPost(string url, string data, CookieContainer cookies) { HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url); request.Method = "POST"; //FORM元素的enctype属性指定了表单数据向服务器提交时所采用的编码类型,默认的缺省值是“application/x-www-form-urlencoded” request.ContentType = "application/x-www-form-urlencoded"; request.ContentLength = Encoding.UTF8.GetByteCount(data); request.CookieContainer = cookies; Stream requetStream = request.GetRequestStream(); StreamWriter streamWriter = new StreamWriter(requetStream); streamWriter.Write(data); streamWriter.Close(); request.CookieContainer = cookies; HttpWebResponse response = (HttpWebResponse)request.GetResponse(); response.Cookies = cookies.GetCookies(response.ResponseUri); cookies.Add(response.Cookies); Stream responseStream = response.GetResponseStream(); StreamReader streamReader = new StreamReader(responseStream, Encoding.GetEncoding("GB2312")); string result = streamReader.ReadToEnd(); streamReader.Close(); responseStream.Close(); return result; } }}
0 0
- C#发送HTTP请求自动登录Web网站
- C#模拟http 发送post请求 模拟登录
- C#发送HTTP请求
- C#发送 http请求
- C#发送http请求
- c# 自动登录网站
- java 作为客户端发送http post请求登录网站首页。 HTTP/1.1 302 Found
- C#自动登录web
- C#后台发送Http请求
- C#后台发送HTTP请求
- 求助 VC下用http协议如何向网站发送登录请求呢,小弟急,谢谢
- bat curl 发送http请求 监控网站
- python模拟http请求实现网站登录
- C#实现通过HttpWebRequest发送POST请求实现网站自动登陆
- C#实现通过HttpWebRequest发送POST请求实现网站自动登陆
- C#实现通过HttpWebRequest发送POST请求实现网站自动登陆
- C#实现通过HttpWebRequest发送POST请求实现网站自动登陆
- C#实现通过HttpWebRequest发送POST请求实现网站自动登陆
- C++编程技巧
- Java开发中的23种设计模式详解(转)
- mysql SHOW STATUS 详解
- JavaScrpit事件处理程序
- 通过Gearman实现MySQL到Redis的数据同步
- C#发送HTTP请求自动登录Web网站
- Linux下批量杀掉 包含某个关键字的 程序进程
- 通过Gearman实现MySQL到Redis的数据同步
- jboss内存查看管理 (转)
- JQuery判断radio是否选中,获取选中值
- 解决iOS8安装企业版无反应问题
- Android--Android网络编程概述
- 一步完成 MySQL 向 Redis 迁移
- nginx 学习五 filter模块简介和实现一个简单的filter模块