Figure 1: HTML Source
Figure 2: Web Browser
Introduction
Give me your web address, I will return to you the HTML source. This article will demonstrate to you a very effortless way to do this.
Background
HTTP post & HTTP reply are very common concepts. Some time ago, I had a little interest in that, so I tried to understand the features of .NET framework library. It was an excellent experience, it’s huge! & my interest went up. All of a sudden, I understand the use of the classes, HttpWebRequest
& HttpWebResponse
, which will be found at System.Net
namespace & I tried to implement this idea.
Using the Code
This is a very simple method. I just use the following classes:
HttpWebRequest
HttpWebResponse
StreamReader
HttpWebRequest
Provides an HTTP-specific implementation of the WebRequest
class. The HttpWebRequest
class provides support for the properties and methods defined in WebRequest
and for additional properties and methods that enable the user to interact directly with servers using HTTP.
More details can be found at this link.
HttpWebResponse
Provides an HTTP-specific implementation of the WebResponse
class. This class contains support for HTTP-specific uses of the properties and methods of the WebResponse
class. The HttpWebResponse
class is used to build HTTP stand-alone client applications that send HTTP requests and receive HTTP responses.
More details can be found at this link.
StreamReader
Implements a TextReader
that reads characters from a byte stream in a particular encoding.
StreamReader
is designed for character input in a particular encoding, whereas the Stream
class is designed for byte input and output. Use StreamReader
for reading lines of information from a standard text file.
StreamReader
defaults to UTF-8 encoding unless specified otherwise, instead of defaulting to the ANSI code page for the current system. UTF-8 handles Unicode characters correctly and provides consistent results on localized versions of the operating system.
By default, a StreamReader
is not thread safe. See TextReader
..::.Synchronized for a thread-safe wrapper.
The Read(array<Char>[]()[], Int32, Int32)
and Write(array<Char>[]()[], Int32, Int32)
method overloads read and write the number of characters specified by the count
parameter. These are to be distinguished from BufferedStream
..::.Read and BufferedStream
..::.Write , which read and write the number of bytes specified by the count
parameter. Use the BufferedStream
methods only for reading and writing an integral number of byte array elements.
More details can be found at this link.
Sample Code Example
// Button event
Private Sub ButtonGet_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles ButtonGet.Click
Dim objGetSource As GetSource = New GetSource()
Try
If Me.TextBoxWebAddress.Text.Trim <> vbNullString Then
Me.RichTextBoxHTMLSource.Text = _
objGetSource.GetHTML(Me.TextBoxWebAddress.Text.Trim())
Me.WebBrowser1.Navigate(Me.TextBoxWebAddress.Text.Trim)
Me.WebBrowser1.Refresh()
End If
Catch ex As Exception
MessageBox.Show(ex.Message.ToString)
End Try
End Sub
// Get HTML Source class
Imports System
Imports System.IO
Imports System.Web
Public Class GetSource
Function GetHTML(ByVal strPage As String) As String
Dim strReply As String = "NULL"
Try
Dim objHttpRequest As System.Net.HttpWebRequest
Dim objHttpResponse As System.Net.HttpWebResponse
objHttpRequest = System.Net.HttpWebRequest.Create(strPage)
objHttpResponse = objHttpRequest.GetResponse
Dim objStrmReader As New StreamReader(objHttpResponse.GetResponseStream)
strReply = objStrmReader.ReadToEnd()
Catch ex As Exception
strReply = "ERROR! " + ex.Message.ToString
End Try
Return strReply
End Function
End Class
Conclusion
I hope that you will like it. Enjoy!
History
- 1st August, 2009: Initial post