发送带有认证信息的HTTP请求并取回响应

问题

如何发送 一个带有网络认证证书的HTTP请求并返回相应的HTTP响应。 

设计

创建一个WebRequest对象和一个NetWorkCredential对象。把NetWorkCredential对象作为WebRequest对象的Credentials的属性赋给它并且通过WebRequest.GetResponse()方法返回HTTP响应。

方案

        public static void Credential() 
        {
            string url = "http://server/path/webform.aspx";
            WebRequest wreq = WebRequest.Create(url);
            //设置信息,创建对象
            string userId="CalvinR";
            string password="123";
            string domain = "DomainName";
            NetworkCredential nc = new NetworkCredential(userId,password,domain);
            wreq.Credentials = nc;
            Console.WriteLine("Sending authenticated request to"+url);
            //读取、响应
            WebResponse wres = wreq.GetResponse();
            Stream st = wres.GetResponseStream();
            StreamReader sr = new StreamReader(st);
            string res = sr.ReadToEnd();

            st.Close();
            sr.Close();

            Console.WriteLine("HTTP response is ");
            Console.WriteLine(res);
        }

 

 

注解

WebRequest对象不是利用New关键字通过构造函数来创建的,而是利用工厂机制(factory mechanism)通过create()方法来创建的。

posted @ 2014-07-18 10:32  韩梦芫  阅读(293)  评论(0编辑  收藏  举报