首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

Post登陆某网站,出现401,求解决解决方法

2013-01-25 
Post登陆某网站,出现401,求解决using Systemusing System.Collections.Genericusing System.ComponentMo

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);
            }
        }
    }
}











    
[解决办法]
需要设置登录网站的用户名密码
HttpWebRequest req = (HttpWebRequest)WebRequest.Create("地址");
        req.Credentials = new NetworkCredential("用户名", "密码", "域名");

[解决办法]
浏览器抓包 对应改一下

热点排行