`

c# http编程

    博客分类:
  • C#
 
阅读更多

 

c# http编程
2010-06-18 11:10
============================================================

using System;
using System.Net;
using System.IO;
using System.Text;

class Test
{
     [STAThread]
    static void Main(string[] args)
     {
        // 

        // TODO: 在此处添加代码以启动应用程序 

        // 

        string url = "http://localhost/csdn2/1.asp";

        //             <% 

        //             if request("aa")="zhuye" then session("ok")="ok" 

        //             if session("ok")="ok" then 

        //             response.write("登录") 

        //             else 

        //             response.write("没有登录") 

        //             end if 

        //             %> 

        string indata = "aa=zhuye";
        string outdata = "";
         CookieContainer myCookieContainer = new CookieContainer();
        //新建一个CookieContainer来存放Cookie集合 


         HttpWebRequest myHttpWebRequest = (HttpWebRequest) WebRequest.Create(url);
        //新建一个HttpWebRequest 

         myHttpWebRequest.ContentType = "application/x-www-form-urlencoded";
         myHttpWebRequest.ContentLength = indata.Length;
         myHttpWebRequest.Method = "POST";
         myHttpWebRequest.CookieContainer = myCookieContainer;
        //设置HttpWebRequest的CookieContainer为刚才建立的那个myCookieContainer 


         Stream myRequestStream = myHttpWebRequest.GetRequestStream();
         StreamWriter myStreamWriter = new StreamWriter(myRequestStream, Encoding.GetEncoding("gb2312"));
         myStreamWriter.Write(indata);
        //把数据写入HttpWebRequest的Request流 

         myStreamWriter.Close();
         myRequestStream.Close();
        //关闭打开对象 


         HttpWebResponse myHttpWebResponse = (HttpWebResponse) myHttpWebRequest.GetResponse();
        //新建一个HttpWebResponse 

         myHttpWebResponse.Cookies = myCookieContainer.GetCookies(myHttpWebRequest.RequestUri);
        //获取一个包含url的Cookie集合的CookieCollection 

         Stream myResponseStream = myHttpWebResponse.GetResponseStream();
         StreamReader myStreamReader = new StreamReader(myResponseStream, Encoding.GetEncoding("gb2312"));
         outdata = myStreamReader.ReadToEnd();
        //把数据从HttpWebResponse的Response流中读出 

         myStreamReader.Close();
         myResponseStream.Close();
         Console.WriteLine(outdata);
        //显示"登录" 


        //拿到了Cookie,再进行请求就能直接读取到登录后的内容了 

         myHttpWebRequest = (HttpWebRequest) WebRequest.Create(url);
         myHttpWebRequest.CookieContainer = myCookieContainer;//* 

        //刚才那个CookieContainer已经存有了Cookie,把它附加到HttpWebRequest中则能直接通过验证 

         myHttpWebResponse = (HttpWebResponse) myHttpWebRequest.GetResponse();
         myHttpWebResponse.Cookies = myCookieContainer.GetCookies(myHttpWebRequest.RequestUri);
         myResponseStream = myHttpWebResponse.GetResponseStream();
         myStreamReader = new StreamReader(myResponseStream, Encoding.GetEncoding("gb2312"));
         outdata = myStreamReader.ReadToEnd();
         myStreamReader.Close();
         myResponseStream.Close();
         Console.WriteLine(outdata);
        //再次显示"登录" 

        //如果把*行注释调,就显示"没有登录" 

     } 
}注释写得很明确了,不多罗嗦了。 补充:如果是以get方式登录的话,直接修改url就可以了,indate可以不写任何东西。(不要去修改 myHttpWebRequest.Method为GET),比如把asp文件修改为 if request.querystring("aa")="zhuye" then session("ok")="ok",只要修改url为 string url="http://localhost/csdn2/1.asp?aa=zhuye";即可。 
=============================================================================

登录校内网的代码

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

    }
分享到:
评论

相关推荐

    C#网络编程培训课件

    C#网络编程---第1章_进程、线程与网络协议.ppt C#网络编程---第2章_TCP应用编程.ppt C#网络编程---第3章_UDP应用编程.ppt ...C#网络编程---第9章_HTTP编程.ppt C#网络编程---第10章_Web_Service_编程.ppt

    C#网络编程高级篇之网页游戏辅助程序设计

    《C#网络编程高级篇之网页游戏辅助程序设计》涉及的领域包括多线程编程技术、Socket套接字编程、TCP协议编程、HTTP协议编程、远程控制技术、木马技术、模拟键盘和鼠标技术、网页游戏辅助程序设计技术等。

    C#网络编程技术教程

    C#网络编程技术教程,包含各种C# ftp webservice http socket

    c#网络编程经典案例

    c#网络编程包括tcp,ftp,http的编程.

    c#网络编程Demo

    c#网络编程Demo 里面包含很多关于网络编程的Demo 如局域网聊天,p2p,ftp,http,tcp,udp等等。值得下载。

    深入学习C#网络编程之HTTP应用编程(下)

    主要介绍了深入学习C#网络编程之HTTP应用编程的相关知识,文中讲解的非常详细,帮助大家更好的学习c#网络编程,感兴趣的朋友可以了解下

    C#网络编程技术与实践(源码)

    第1章 C#.NET网络编程概述 第2章 C#.NET高级网络编程技术概述 第3章 开发基于TCP协议的应用程序 第4章 开发基于UDP的应用程序 第5章 开发基于SNMP协议的应用程序 第6章 使用.NET发送邮件  第7章 FTP下载与...

    精通C#游戏编程

    电子书下载 : http://blog.csdn.net/good3651/article/details/53420721 ------- 《游戏开发经典丛书:精通C#游戏编程》通过引导读者创建一个基本的游戏,展示了如何使用C#和OpenGL一步步地开发出简单、整洁而可靠...

    c#精彩编程百例(源代码)

    《c#精彩编程百例》配套源码 附录:本书配套光盘说明 本光盘包括本书所有源代码及其可执行文件、配套的C#编辑器(包括编辑器的C#源代码)及一些参考资料。 一、安装程序 将此光盘放到CD-ROM驱动器,运行Setup.htm...

    C#实用编程百例随书光盘及C#编程技巧典型案例解析随书光盘

    《C# 实用编程百例》配套光盘使用指南 在本书配套光盘中可以找到与书中实例相应的文件。文件先按章组成, 共分成6章。每章的文件夹中包含了该章的实例源文件。 使用本书配套光盘时需要注意以下几点: ·本书...

    R语言和C#混合编程

    R语言和C#混合编程技术 利用http://rcom.univie.ac.at/提供的组件 有免费版和商业版

    C# 实用编程百例

    ·下载.NET Framework 1.1 Software Development Kit的官方网址为: http://www.microsoft.com/downloads/details.aspx?FamilyId=9B3A2CA6-3647-4070-9F41-A333·对于第4章数据库编程中的实例,除了Framework以外,...

    C# 校际编程大赛第一名作品-(蓝色口袋)

    C# 校际编程大赛第一名作品-(蓝色口袋) 包含内容:仿QQ界面,MD5破解,手写板,软件的注册,界面抖动,全局钩子,系统快截键等等! 官方主页:http://www.8han.com 制作:梦想接口编程组 QQ讨论群:72470753

    C#中文编程示范编译器

    详情请浏览:http://blog.csdn.net/ruixing123/archive/2009/06/17/4276870.aspx

    C# Socket编程入门实例

    C# Socket编程入门实例,配合博文使用http://blog.csdn.net/mevicky/article/details/49000019

    c# tcp ip编程

    c#的tcp/ip编程,可参见博客http://blog.csdn.net/specialshoot/article/details/51379076

    C# 编程指南 [微软官方 MSDN 节选]

    C# 编程指南 [微软官方 MSDN 节选] MSDN Library for Visual Studio 2008 - Visual C# - C# 编程指南 制作成了chm格式,方便离线状态下学习! ======================================= 原文地址:...

    马骏 C#网络应用编程基础-电子教案及习题

    马骏 C#网络应用编程基础-电子教案及课后习题

Global site tag (gtag.js) - Google Analytics