C# 登录网页,在浏览器中打开网页



Http Analyzer  下载1   下载2


登录与在浏览器中查看

/// <summary>
/// 发送登录信息,进行登录
/// </summary>
private void Login_Click()
{
    // 设置登录信息
    string url = "http://10.80.3.212/zentao/user-login.html";
    string postData = "account=test&password=123456&referer=http://10.80.3.212/zentao/my/";

    // 发送post信息,进行登录
    CookieCollection cookie;
    string html = HttpTool.GetHtml(url, postData, Method.POST, out cookie);

    if (cookie.Count > 0)
    {
        MessageBox.Show("您已成功登录!");
    }
}

/// <summary>
/// 获取其他页面数据信息(登录成功后,或不需要登录)
/// </summary>
private void getURL(string url)
{
    string data = HttpTool.GetHtml(url);   // 实时获取网页数据
    MessageBox.Show(data);
}

/// <summary>
/// 登录成功后,在浏览器中打开url
/// </summary>
private void openURl(string url)
{
    HttpTool.openUrl(url);
    //System.Diagnostics.Process.Start(url); //直接可以访问的网页打开方式
}

发送POST信息与网页数据的获取

public enum Method
{
    POST = 0,
    GET = 1
}

/// <summary>
/// 用于发送http请求,访问WEB页面
/// </summary>
public class HttpTool   //此类参考:http://blog.csdn.net/htsnoopy/article/details/7094224
{
    #region 设置信息

    public static CookieContainer cookie = new CookieContainer();           // 用于记录访问网页时cookie数据
    public static CookieCollection cookieCollection;

    private static string ContentType = "application/x-www-form-urlencoded";
    private static string Accept = "text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5";
    private static string UserAgent = "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.14) Gecko/20080404 Firefox/2.0.0.14";
        
    public static void setting(string contentType, string accept, string userAgent)
    {
        ContentType = contentType;
        Accept = accept;
        UserAgent = userAgent;
    }

    public static void setting(CookieContainer cc, string contentType, string accept, string userAgent)
    {
        cookie = cc;
        ContentType = contentType;
        Accept = accept;
        UserAgent = userAgent;
    }

    /// <summary>
    /// 清空cookie数据
    /// </summary>
    public static void clearCookie()
    {
        cookie = new CookieContainer();
    }

    #endregion


    #region 网页数据获取的获取

    /// <summary>
    /// 获取指定的网页数据(不需要登录,可以直接访问的页面;或已登录)
    /// </summary>
    public static string GetHtml(string url)
    {
        return GetHtml(url, out cookieCollection);
    }

    /// <summary>
    /// 获取指定的网页数据(不需要登录,可以直接访问的页面)
    /// </summary>
    public static string GetHtml(string url, out CookieCollection cookieCollection)
    {
        try
        {
            HttpWebRequest httpWebRequest;

            httpWebRequest = (HttpWebRequest)HttpWebRequest.Create(url);
            httpWebRequest.CookieContainer = cookie;

            HttpWebResponse httpWebResponse;
            httpWebResponse = (HttpWebResponse)httpWebRequest.GetResponse();
            Stream responseStream = httpWebResponse.GetResponseStream();
            StreamReader streamReader = new StreamReader(responseStream, Encoding.UTF8);
            string html = streamReader.ReadToEnd();
            streamReader.Close();
            responseStream.Close();

            cookieCollection = cookie.GetCookies(new Uri(url));

            return html;
        }
        catch (Exception)
        {
            cookieCollection = null;
            return null;
        }
    }
    #endregion


    #region 需要验证帐号信息的网页,数据获取

    /// <summary>
    /// post数据到指定的网址,获取cookie数据,和返回页
    /// </summary>
    public static string GetHtml(string url, string postData, Method method)
    {
        return GetHtml(url, postData, method, out cookieCollection);
    }

    /// <summary>
    /// post数据到指定的网址,获取cookie数据,和返回页
    /// </summary>
    public static string GetHtml(string url, string postData, Method method, out CookieCollection cookieCollection)
    {
        try
        {
            if (string.IsNullOrEmpty(postData))
            {
                return GetHtml(url, out cookieCollection);
            }

            byte[] byteRequest = Encoding.Default.GetBytes(postData);

            HttpWebRequest httpWebRequest;
            httpWebRequest = (HttpWebRequest)HttpWebRequest.Create(url);

            httpWebRequest.CookieContainer = cookie;
            httpWebRequest.ContentType = ContentType;

            httpWebRequest.Referer = url;
            httpWebRequest.Accept = Accept;
            httpWebRequest.UserAgent = UserAgent;
            httpWebRequest.Method = method == Method.POST ? "POST" : "GET";
            httpWebRequest.ContentLength = byteRequest.Length;

            Stream stream = httpWebRequest.GetRequestStream();
            stream.Write(byteRequest, 0, byteRequest.Length);
            stream.Close();

            HttpWebResponse httpWebResponse;
            httpWebResponse = (HttpWebResponse)httpWebRequest.GetResponse();
            Stream responseStream = httpWebResponse.GetResponseStream();
            StreamReader streamReader = new StreamReader(responseStream, Encoding.UTF8);
            string html = streamReader.ReadToEnd();
            streamReader.Close();
            responseStream.Close();

            cookieCollection = cookie.GetCookies(new Uri(url));

            return html;
        }
        catch (Exception)
        {
            cookieCollection = null;
            return null;
        }
    }

    /// <summary>
    /// 登录成功后,在浏览器中打开指定的url
    /// </summary>
    public static void openUrl(string url)
    {
        openUrl(cookieCollection, url);
    }

    public static void openUrl(CookieCollection cookieCollection, string url)
    {
        string tmp = "";
        for (int i = 0; i < cookieCollection.Count; i++)
        {
            Cookie c = cookieCollection[i];
            tmp += (tmp.Equals("") ? "" : "&") + c.Name.ToString() + "=" + c.Value.ToString();
        }

        Process.Start(url + "?" + tmp);
    }

    #endregion

}

html数据的解析: http://blog.csdn.net/scimence/article/details/50274317




### 回答1: "C"在许多不同的领域有不同的含义和用途。 首先,在计算机领域,"C"是一种编程语言。C语言是一种通用的高级编程语言,最初由贝尔实验室的丹尼斯·里奇开发。它是许多现代计算机程序的基础,并广泛用于系统级编程、嵌入式系统开发和游戏开发等方面。 另外,在音乐领域,"C"代表着音乐的一个音符。在西方音乐,音符以字母表示,而"C"代表着音阶的一个特定音符,也被称为“do”。在音乐理论,C是一个特别重要的音符,因为它是音阶的起点和标准音。 此外,"C"还可以代表某些公司的企业名称或商标。例如,在汽车领域,"C"代表了雪佛兰(Chevrolet)这个品牌;在时尚行业,"C"是香奈儿(Chanel)的标志。 总而言之,"C"是一个多义的词,可以表示计算机编程语言、音乐的音符,以及不同公司的企业名称或商标。它在不同领域具有不同的含义和用途。 ### 回答2: C是一种编程语言,它是由丹尼斯·里奇在20世纪70年代初开发的。C语言是一种通用的高级编程语言,被广泛应用于系统软件开发和嵌入式系统领域。 C语言具有简洁、高效的特点,它提供了丰富的代码控制结构和功能,使得开发人员可以更加灵活地编写程序。C语言的语法简单易懂,易于学习和掌握,使得初学者能够很快上手并开始开发应用。 在C语言,程序是由一系列函数组成的。函数是C语言的基本组织单元,通过函数可以实现程序的模块化和重用。C语言还提供了丰富的标准库函数,开发人员可以通过调用这些函数来实现各种功能,如输入输出、字符串处理、内存管理等。 C语言还支持指针和内存管理,这使得程序可以直接访问和操作内存的数据,提高了程序的灵活性和效率。但同时也增加了程序开发和调试的难度,需要开发人员对内存管理的细节进行更加细致的处理。 由于C语言具有较高的性能和灵活性,广泛应用于系统软件开发。许多操作系统、编译器、数据库和网络协议等都是使用C语言开发的。此外,C语言也被广泛应用于嵌入式系统开发,如智能手机、汽车电子和工控系统等。 总之,C语言是一种功能强大、灵活易用的编程语言,通过它可以实现各种复杂的程序。无论是初学者还是有经验的开发人员,都可以通过学习和应用C语言来实现自己的编程目标。 ### 回答3: c是英文字母表的第三个字母,也是拉丁字母表的一个字母。在数学,c通常表示一个常数或者是某个表达式的未知数。在化学,C是碳的化学符号,碳是地球上最重要的元素之一,它可以形成非常多的化合物,包括有机化合物和无机化合物。在计算机科学,C是一种编程语言的名称,由贝尔实验室的Dennis Ritchie在1972年开发。C语言是一种结构化的高级编程语言,广泛用于软件开发和系统编程。C语言具有语法简单、执行效率高和灵活的特点,被认为是学习计算机科学和编程的基础。在音乐,C代表着“do”,是一个音阶的基本音。C音阶是西方音乐最常用的音阶之一,由C、D、E、F、G、A、B这七个音组成。最后,在国际学术界,C常常用作文章的引用标记,用于引用其他学者的研究成果,表示对前人工作的尊重和致谢。总而言之,C在不同领域具有不同的含义和用途,是一个多功能的字母。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值