c# HttpWebRequest 和HttpWebResponse 登录网站或论坛(校内网登陆)
这是登录校内网的代码呵呵自己注册一个试试吧我的账号和密码就不给了 不过可以加我为好友 冯洪春 貌似校内上就我一个
Form1.cs代码:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;
using System.Net;
namespace WebRequestToLogin
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
string Txt="";
Login(UserName.Text, UserPwd.Text, LoginUrl.Text, out Txt);
//获取登录后的页面数据
textBox2.Text = Txt;
//判断该页面数据是否是登陆后的数据就可以判断是否登录成功了
//由于都是字符串操作就没有必要写了呵呵
}
public void Login(string UserName, string UserPwd, string LoginUrl, out string Txt)
{
try
{
//定义Cookie容器
CookieContainer CookieArray = new CookieContainer();
//创建Http请求
HttpWebRequest LoginHttpWebRequest = (HttpWebRequest)WebRequest.Create(LoginUrl);
//登录数据
string LoginData = "email=" + UserName + "&password=" + UserPwd;
//数据被传输类型
LoginHttpWebRequest.ContentType = "application/x-www-form-urlencoded";
//数据长度
LoginHttpWebRequest.ContentLength = LoginData.Length;
//数据传输方法 get或post
LoginHttpWebRequest.Method = "POST";
//设置HttpWebRequest的CookieContainer为刚才建立的那个CookieArray
LoginHttpWebRequest.CookieContainer = CookieArray;
//获取登录数据流
Stream myRequestStream = LoginHttpWebRequest.GetRequestStream();
//StreamWriter
StreamWriter myStreamWriter = new StreamWriter(myRequestStream, Encoding.Default);
//把数据写入HttpWebRequest的Request流
myStreamWriter.Write(LoginData);
//关闭打开对象
myStreamWriter.Close();
myRequestStream.Close();
//新建一个HttpWebResponse
HttpWebResponse myHttpWebResponse = (HttpWebResponse)LoginHttpWebRequest.GetResponse();
//获取一个包含url的Cookie集合的CookieCollection
myHttpWebResponse.Cookies = CookieArray.GetCookies(LoginHttpWebRequest.RequestUri);
WebHeaderCollection a = myHttpWebResponse.Headers;
Stream myResponseStream = myHttpWebResponse.GetResponseStream();
StreamReader myStreamReader = new StreamReader(myResponseStream, Encoding.Default);
Txt = myStreamReader.ReadToEnd();
//把数据从HttpWebResponse的Response流中读出
myStreamReader.Close();
myResponseStream.Close();
}
catch (Exception ex)
{
throw ex;
}
}
}
}
以下为设计代码
namespace WebRequestToLogin
{
partial class Form1
{
/// <summary>
/// 必需的设计器变量。
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// 清理所有正在使用的资源。
/// </summary>
/// <param name="disposing">如果应释放托管资源,为 true;否则为 false。</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows 窗体设计器生成的代码
/// <summary>
/// 设计器支持所需的方法 - 不要
/// 使用代码编辑器修改此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.button1 = new System.Windows.Forms.Button();
this.label1 = new System.Windows.Forms.Label();
this.UserName = new System.Windows.Forms.TextBox();
this.textBox2 = new System.Windows.Forms.TextBox();
this.label2 = new System.Windows.Forms.Label();
this.label3 = new System.Windows.Forms.Label();
this.UserPwd = new System.Windows.Forms.TextBox();
this.label4 = new System.Windows.Forms.Label();
this.LoginUrl = new System.Windows.Forms.TextBox();
this.SuspendLayout();
//
// button1
//
this.button1.Location = new System.Drawing.Point(435, 42);
this.button1.Name = "button1";
this.button1.Size = new System.Drawing.Size(75, 23);
this.button1.TabIndex = 0;
this.button1.Text = "登录";
this.button1.UseVisualStyleBackColor = true;
this.button1.Click += new System.EventHandler(this.button1_Click);
//
// label1
//
this.label1.AutoSize = true;
this.label1.Location = new System.Drawing.Point(23, 47);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(53, 12);
this.label1.TabIndex = 1;
this.label1.Text = "用户名:";
//
// UserName
//
this.UserName.Location = new System.Drawing.Point(99, 44);
this.UserName.Name = "UserName";
this.UserName.Size = new System.Drawing.Size(100, 21);
this.UserName.TabIndex = 2;
this.UserName.Text = "";
//
// textBox2
//
this.textBox2.Location = new System.Drawing.Point(98, 88);
this.textBox2.Multiline = true;
this.textBox2.Name = "textBox2";
this.textBox2.ReadOnly = true;
this.textBox2.ScrollBars = System.Windows.Forms.ScrollBars.Vertical;
this.textBox2.Size = new System.Drawing.Size(673, 466);
this.textBox2.TabIndex = 2;
//
// label2
//
this.label2.AutoSize = true;
this.label2.Location = new System.Drawing.Point(22, 91);
this.label2.Name = "label2";
this.label2.Size = new System.Drawing.Size(41, 12);
this.label2.TabIndex = 1;
this.label2.Text = "内容:";
//
// label3
//
this.label3.AutoSize = true;
this.label3.Location = new System.Drawing.Point(249, 47);
this.label3.Name = "label3";
this.label3.Size = new System.Drawing.Size(41, 12);
this.label3.TabIndex = 1;
this.label3.Text = "密码:";
//
// UserPwd
//
this.UserPwd.Location = new System.Drawing.Point(296, 44);
this.UserPwd.Name = "UserPwd";
this.UserPwd.Size = new System.Drawing.Size(100, 21);
this.UserPwd.TabIndex = 2;
this.UserPwd.Text = "";
//
// label4
//
this.label4.AutoSize = true;
this.label4.Location = new System.Drawing.Point(23, 20);
this.label4.Name = "label4";
this.label4.Size = new System.Drawing.Size(65, 12);
this.label4.TabIndex = 1;
this.label4.Text = "登录网址:";
//
// LoginUrl
//
this.LoginUrl.Location = new System.Drawing.Point(98, 12);
this.LoginUrl.Name = "LoginUrl";
this.LoginUrl.Size = new System.Drawing.Size(673, 21);
this.LoginUrl.TabIndex = 2;
this.LoginUrl.Text = "http://login.xiaonei.com/Login.do";
//
// Form1
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(792, 566);
this.Controls.Add(this.textBox2);
this.Controls.Add(this.LoginUrl);
this.Controls.Add(this.UserPwd);
this.Controls.Add(this.UserName);
this.Controls.Add(this.label4);
this.Controls.Add(this.label3);
this.Controls.Add(this.label2);
this.Controls.Add(this.label1);
this.Controls.Add(this.button1);
this.Name = "Form1";
this.Text = "Form1";
this.ResumeLayout(false);
this.PerformLayout();
}
#endregion
private System.Windows.Forms.Button button1;
private System.Windows.Forms.Label label1;
private System.Windows.Forms.TextBox UserName;
private System.Windows.Forms.TextBox textBox2;
private System.Windows.Forms.Label label2;
private System.Windows.Forms.Label label3;
private System.Windows.Forms.TextBox UserPwd;
private System.Windows.Forms.Label label4;
private System.Windows.Forms.TextBox LoginUrl;
}
}