1

我目前正在开发一个可以使用某个网页显示的 HTML 信息的项目。

问题是,我不能只使用 WebRequest,因为我试图从中获取 HTML 的网站有一个登录系统,并且该页面要求您登录。

但是,如果有任何问题 - 使用我的页面的用户应该可以访问此页面,他会记住使用 cookie 登录。

所以我的意思是,我需要一种方法让我的服务器拥有 cookie 并从网页读取,或者更确切地说,让客户端给我 HTML 代码,如果他进入页面,它将显示他。

我正在使用带有 C# 的 ASP.NET。

4

1 回答 1

0

我会在评论中回复“如何使用 cookie 发送 webrequest”,但由于评论的格式化能力有限,我将其作为答案发布:

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

  // ...

  var request = WebRequest.Create("http://localhost:54903/SimpleLogin.ashx") as HttpWebRequest;
  var container = new CookieContainer();
  request.CookieContainer = container;
  string postData = "username=user&password=pass";
  byte[] data = Encoding.ASCII.GetBytes(postData);
  request.Method = "POST";
  request.ContentType = "application/x-www-form-urlencoded";
  request.ContentLength = data.Length;
  using (var stream = request.GetRequestStream()) {
    stream.Write(data, 0, data.Length);
  }
  var response = (HttpWebResponse)request.GetResponse();

  request = WebRequest.Create("http://localhost:54903/Home.ashx") as HttpWebRequest;
  request.CookieContainer = container;
  request.Method = "GET";
  response = (HttpWebResponse)request.GetResponse();
  string authorizedGetString;
  using (var stream = response.GetResponseStream()) {
    using (var streamReader = new StreamReader(stream)) {
      authorizedGetString = streamReader.ReadToEnd();
    }
  }
于 2013-11-14T10:35:16.973 回答