zoukankan      html  css  js  c++  java
  • .net 获取https页面的信息 在iis7.5服务器上不管用

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

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

    GET的方法:

     1  /// <summary>
     2         /// 获取URL访问的HTML内容 获取https 页面的
     3         /// </summary>
     4         /// <param name="Url">URL地址</param>
     5         /// <returns>HTML内容</returns>
     6         public static string GetWebContent(string Url, CookieContainer cookieContainer)
     7         {
     8             string strResult = "";
     9             try
    10             {
    11                 ServicePointManager.Expect100Continue = true;
    12                 ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3;
    13                 HttpWebRequest request = (HttpWebRequest)WebRequest.Create(Url);
    14                 request.CookieContainer = cookieContainer;
    15                 request.Timeout = 30000;
    16                 request.Headers.Set("Pragma", "no-cache");
    17 
    18                 HttpWebResponse response = (HttpWebResponse)request.GetResponse();
    19                 Stream streamReceive = response.GetResponseStream();
    20 
    21                 Encoding encoding = Encoding.GetEncoding("utf-8");
    22                 StreamReader streamReader = new StreamReader(streamReceive, encoding);
    23                 strResult = streamReader.ReadToEnd();
    24             }
    25             catch
    26             {
    27 
    28             }
    29             return strResult;
    30         }
    View Code

    POST的方法:

     1 /// <summary>
     2         /// post提交数据到https
     3         /// </summary>
     4         /// <param name="posturl"></param>
     5         /// <param name="postdata"></param>
     6         /// <param name="header"></param>
     7         /// <param name="cookieContainer"></param>
     8         /// <returns></returns>
     9         public static string SetPostHtml(string posturl, string postdata, HttpHeader header, CookieContainer cookieContainer)
    10         {
    11             string restr = "";
    12             ServicePointManager.Expect100Continue = true;
    13             ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3;
    14             HttpWebRequest request = null;
    15             HttpWebResponse response = null;
    16             request = (HttpWebRequest)WebRequest.Create(posturl);
    17             request.CookieContainer = cookieContainer;
    18             request.Method = header.method;
    19             request.Referer = header.Referer;
    20             request.ContentType = header.contentType;
    21             byte[] postdatabyte = Encoding.UTF8.GetBytes(postdata);
    22             request.ContentLength = postdatabyte.Length;
    23             request.AllowAutoRedirect = false;
    24             request.KeepAlive = true;
    25             //提交请求
    26             Stream stream;
    27             stream = request.GetRequestStream();
    28             stream.Write(postdatabyte, 0, postdatabyte.Length);
    29             stream.Close();
    30             //接收响应
    31             response = (HttpWebResponse)request.GetResponse();
    32             using (StreamReader reader = new StreamReader(response.GetResponseStream()))
    33             {
    34                 restr = reader.ReadToEnd().ToString();
    35             }
    36             return restr;
    37         }
    View Code

    希望对大家有帮助;

  • 相关阅读:
    6 15种对抗攻击的防御方法
    5 12种生成对抗样本的方法
    4 基于优化的攻击——CW
    3 基于梯度的攻击——MIM
    Hibernate 5 Maven 仓库的 Artifacts
    Hibernate 5 发行组件下载
    Hibernate 5 的模块/包(modules/artifacts)
    Hibernate 5 开始使用指南前言
    Git 如何针对项目修改本地提交提交人的信息
    Spring Batch 4.2 新特性
  • 原文地址:https://www.cnblogs.com/xinloverong/p/3773114.html
Copyright © 2011-2022 走看看