Post登陆某网站,出现401,求解决
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Net;
using System.IO;
namespace _19lou
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
const string LoginUrl = @"http://www.19lou.com/login";
HttpWebRequest httpWebRequest;
HttpWebResponse httpWebResponse;
string responseFromServer; //SendLogin返回的响应流
string username = ""; //username
string password = ""; //password
private void btn_login_Click(object sender, EventArgs e)
{
if (txt_username.Text != "" && txt_password.Text != "")
{
username = txt_username.Text;
password = txt_password.Text;
string PostData = string.Format("userName={0}&userPass={1}&captcha=&checked=0&cityInfo=&refererUrl=aHR0cDovL3d3dy4xOWxvdS5jb20=&remember=1", username, password);
SendLogin(LoginUrl, PostData);
}
}
public void SendLogin(string loginUrl, string postData)
{
byte[] byteArray = Encoding.GetEncoding("GBK").GetBytes(postData);
try
{
//基于apache服务器,IIS发布的则不需要
ServicePointManager.Expect100Continue = false;
CookieContainer cookieContainer = new CookieContainer();
//创建对url的请求
httpWebRequest = (HttpWebRequest)WebRequest.Create(loginUrl);
httpWebRequest.CookieContainer = cookieContainer;
httpWebRequest.Accept = "image/gif, image/jpeg, image/pjpeg, image/pjpeg, application/QVOD, application/QVOD, application/xaml+xml, application/x-ms-xbap, application/x-ms-application, application/vnd.ms-xpsdocument, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */*";
httpWebRequest.Headers["Accept-Language"] = "zh-cn";
httpWebRequest.UserAgent = "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E)";
httpWebRequest.ContentType = "application/x-www-form-urlencoded";
//协议方式
httpWebRequest.Method = "POST";
//post开始
//请求内容长度
httpWebRequest.ContentLength = byteArray.Length;
Stream dataStream = httpWebRequest.GetRequestStream();
// 请求数据放入请求流
dataStream.Write(byteArray, 0, byteArray.Length);
//返回html
httpWebResponse = (HttpWebResponse)httpWebRequest.GetResponse();
if (httpWebResponse.StatusCode == HttpStatusCode.OK)
{
StreamReader reader = new StreamReader(httpWebResponse.GetResponseStream(), Encoding.GetEncoding("utf-8"));
//读取响应流
responseFromServer = reader.ReadToEnd();
//MessageBox.Show(responseFromServer); //读响应流html
reader.Close();
dataStream.Close();
httpWebResponse.Close();
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
}
}