解决iis7.5服务器上.net 获取不到https页面的信息
2014-08-04来源:易贤网

让我纠结了一天多的问题,给大家看下,有相同情况的可以不用浪费时间了,本人当时找了好半天都没找到什么有用的信息,项目在本地没有问题,但部署在服务器后,获取不到https页面的信息,加入下面的代码就可以了,因为iis7.5的安全协议比较高的原因。

我的获取页面需要cookie,不需要的可以去掉;

GET的方法:

代码如下:

/// <summary>

        /// 获取URL访问的HTML内容 获取https 页面的

        /// </summary>

        /// <param name="Url">URL地址</param>

        /// <returns>HTML内容</returns>

        public static string GetWebContent(string Url, CookieContainer cookieContainer)

        {

            string strResult = "";

            try

            {

                ServicePointManager.Expect100Continue = true;

                ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3;

                HttpWebRequest request = (HttpWebRequest)WebRequest.Create(Url);

                request.CookieContainer = cookieContainer;

                request.Timeout = 30000;

                request.Headers.Set("Pragma", "no-cache");

                HttpWebResponse response = (HttpWebResponse)request.GetResponse();

                Stream streamReceive = response.GetResponseStream();

                Encoding encoding = Encoding.GetEncoding("utf-8");

                StreamReader streamReader = new StreamReader(streamReceive, encoding);

                strResult = streamReader.ReadToEnd();

            }

            catch

            {

            }

            return strResult;

        }

 POST的方法:

代码如下:

/// <summary>

        /// post提交数据到https

        /// </summary>

        /// <param name="posturl"></param>

        /// <param name="postdata"></param>

        /// <param name="header"></param>

        /// <param name="cookieContainer"></param>

        /// <returns></returns>

        public static string SetPostHtml(string posturl, string postdata, HttpHeader header, CookieContainer cookieContainer)

        {

            string restr = "";

            ServicePointManager.Expect100Continue = true;

            ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3;

            HttpWebRequest request = null;

            HttpWebResponse response = null;

            request = (HttpWebRequest)WebRequest.Create(posturl);

            request.CookieContainer = cookieContainer;

            request.Method = header.method;

            request.Referer = header.Referer;

            request.ContentType = header.contentType;

            byte[] postdatabyte = Encoding.UTF8.GetBytes(postdata);

            request.ContentLength = postdatabyte.Length;

            request.AllowAutoRedirect = false;

            request.KeepAlive = true;

            //提交请求

            Stream stream;

            stream = request.GetRequestStream();

            stream.Write(postdatabyte, 0, postdatabyte.Length);

            stream.Close();

            //接收响应

            response = (HttpWebResponse)request.GetResponse();

            using (StreamReader reader = new StreamReader(response.GetResponseStream()))

            {

                restr = reader.ReadToEnd().ToString();

            }

            return restr;

        }

更多信息请查看IT技术专栏

推荐信息