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