How I can get the content of the web page using ASP.NET? I need to write a program to get the HTML of a webpage and store it into a string variable.
You can use the WebClient
Using System.Net;
using(WebClient client = new WebClient()) {
string downloadString = client.DownloadString("http://www.gooogle.com");
}
WebRequest.Create(string)
is obsolete: WebRequest
, HttpWebRequest
, ServicePoint
, and WebClient
are obsolete. Use HttpClient
instead.' –
Ancestor I've run into issues with Webclient.Downloadstring before. If you do, you can try this:
WebRequest request = WebRequest.Create("http://www.google.com");
WebResponse response = request.GetResponse();
Stream data = response.GetResponseStream();
string html = String.Empty;
using (StreamReader sr = new StreamReader(data))
{
html = sr.ReadToEnd();
}
WebRequest.Create(string)
is obsolete: WebRequest
, HttpWebRequest
, ServicePoint
, and WebClient
are obsolete. Use HttpClient
instead.' –
Ancestor I recommend not using WebClient.DownloadString
. This is because (at least in .NET 3.5) DownloadString is not smart enough to use/remove the BOM, should it be present. This can result in the BOM (
) incorrectly appearing as part of the string when UTF-8 data is returned (at least without a charset) - ick!
Instead, this slight variation will work correctly with BOMs:
string ReadTextFromUrl(string url) {
// WebClient is still convenient
// Assume UTF8, but detect BOM - could also honor response charset I suppose
using (var client = new WebClient())
using (var stream = client.OpenRead(url))
using (var textReader = new StreamReader(stream, Encoding.UTF8, true)) {
return textReader.ReadToEnd();
}
}
WebRequest.Create(string)
is obsolete: WebRequest
, HttpWebRequest
, ServicePoint
, and WebClient
are obsolete. Use HttpClient
instead.' –
Ancestor Webclient client = new Webclient();
string content = client.DownloadString(url);
Pass the URL of page who you want to get. You can parse the result using htmlagilitypack.
WebClient
, and HttpGetRequest
(amongst others) are obsolete. You have to use HttpClient
now, and deal with all of the async
overhead/baggage that it's encumbered with... 🙄🤦♀️😝 –
Ancestor I have always been using WebClient, but at the time this post is made (.NET 6 is avail), WebClient is getting deprecated.
The preferred way is
HttpClient client = new HttpClient();
string content = await client.GetStringAsync(url);
HttpClient
implementation can be found here: #1048699 –
Ancestor © 2022 - 2024 — McMap. All rights reserved.