VB.NET proxy example

Useful vb.net code snippet using HTTP proxy from one of our users.

Imports System.Collections.Generic
Imports System.IO
Imports System.Net

Namespace blogtest
Class Program
Private Shared Sub Main(args As String())
Dim http As New simplehttp()
‘testing on ipcheckit.com so we can make sure we’re really connecting through proxy. Look for proxy IP in html printed in console
‘remember to change 127.0.0.1, 8080, login, password to your working proxy details
Dim html As String = http.geturl(”http://ipcheckit.com/”, “127.0.0.1″, 8080, “login”, “password”)
System.Console.WriteLine(html)
End Sub
End Class

Class simplehttp
Public Function geturl(url As String, proxyip As String, port As Integer, proxylogin As String, proxypassword As String) As String
Dim resp As HttpWebResponse
Dim req As HttpWebRequest = DirectCast(WebRequest.Create(url), HttpWebRequest)
req.UserAgent = “Mozilla/5.0″
req.AllowAutoRedirect = True
req.ReadWriteTimeout = 5000
req.CookieContainer = New CookieContainer()
req.Referer = “”
req.Headers.[Set](”Accept-Language”, “en,en-us”)
Dim stream_in As StreamReader

Dim proxy As New WebProxy(proxyip, port)
‘if proxylogin is an empty string then don’t use proxy credentials (open proxy)
If proxylogin “” Then
proxy.Credentials = New NetworkCredential(proxylogin, proxypassword)
End If
req.Proxy = proxy

Dim response As String = “”
Try
resp = DirectCast(req.GetResponse(), HttpWebResponse)
stream_in = New StreamReader(resp.GetResponseStream())
response = stream_in.ReadToEnd()
stream_in.Close()
Catch ex As Exception
End Try
Return response
End Function

Public Function getposturl(url As String, postdata As String, proxyip As String, port As Short, proxylogin As String, proxypassword As String) As String
Dim resp As HttpWebResponse
Dim req As HttpWebRequest = DirectCast(WebRequest.Create(url), HttpWebRequest)
req.UserAgent = “Mozilla/5.0″
req.AllowAutoRedirect = True
req.ReadWriteTimeout = 5000
req.CookieContainer = New CookieContainer()
req.Method = “POST”
req.ContentType = “application/x-www-form-urlencoded”
req.ContentLength = postdata.Length
req.Referer = “”

Dim proxy As New WebProxy(proxyip, port)
‘if proxylogin is an empty string then don’t use proxy credentials (open proxy)
If proxylogin “” Then
proxy.Credentials = New NetworkCredential(proxylogin, proxypassword)
End If
req.Proxy = proxy

Dim stream_out As New StreamWriter(req.GetRequestStream(), System.Text.Encoding.ASCII)
stream_out.Write(postdata)
stream_out.Close()
Dim response As String = “”

Try
resp = DirectCast(req.GetResponse(), HttpWebResponse)
Dim resStream As Stream = resp.GetResponseStream()
Dim stream_in As New StreamReader(req.GetResponse().GetResponseStream())
response = stream_in.ReadToEnd()
stream_in.Close()
Catch ex As Exception
End Try
Return response
End Function
End Class
End Namespace