我目前正在开发一个可以使用某个网页显示的 HTML 信息的项目。
问题是,我不能只使用 WebRequest,因为我试图从中获取 HTML 的网站有一个登录系统,并且该页面要求您登录。
但是,如果有任何问题 - 使用我的页面的用户应该可以访问此页面,他会记住使用 cookie 登录。
所以我的意思是,我需要一种方法让我的服务器拥有 cookie 并从网页读取,或者更确切地说,让客户端给我 HTML 代码,如果他进入页面,它将显示他。
我正在使用带有 C# 的 ASP.NET。
我会在评论中回复“如何使用 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();
}
}