We help IT Professionals succeed at work.

Check out our new AWS podcast with Certified Expert, Phil Phillips! Listen to "How to Execute a Seamless AWS Migration" on EE or on your favorite podcast platform. Listen Now

x

How Do I Test HTTP / HTTPS / PORT 993 - IMAPs / is Alive TESTs using .NET / VB / C#

Medium Priority
1,332 Views
Last Modified: 2012-06-21
I have little monitoring app (Windows Forms - desktop) that pings our mail server
every now and then to acertain that it is alive, that part works ok.

What I now want to do is to test the various services & ports below.
i.e. HTTP / HTTPS / PORT 993 - IMAPs/ is Alive using .NET

These will basically be:

HTTP monitor emailsubdomain.isp.yourcompany.com (HTTP)
HTTP monitor emailsubdomain.isp.yourcompany.com (HTTP)
HTTPS monitor emailsubdomain.isp.yourcompany.comm (HTTPS)
PING monitor emailsubdomain.isp.yourcompany.com (PING)
PORT - IMAPs monitor emailsub.isp.yourcompany.com on IMAP Port 993  

A test sample URL will be like below:
http://emailsubdomain.isp.yourcompany.com/owa/
https://emailsubdomain.isp.yourcompany.com/owa/

The piece of code I was using for the HTTP is below, but this does not work
currently.

I want a function or group of functions that will return TRUE/FALSE for the various
tests above.
Private Sub OnPostInfo()
 
        Dim strId As String = ""
        Dim strName As String = "domain\firstname.lastname"
 
        Try
 
            Dim encoding As New ASCIIEncoding()
            Dim postData As String = "userid=" & strId
            postData += ("&username=" & strName)
            Dim data As Byte() = encoding.GetBytes(postData)
 
            'Prepare web request...
            Dim myRequest As HttpWebRequest = DirectCast(WebRequest.Create("https://subdomain.isp.yourcompany.com/owa/"), HttpWebRequest)
            myRequest.Method = "POST"
            myRequest.ContentType = "application/x-www-form-urlencoded"
            myRequest.ContentLength = data.Length
            Dim newStream As Stream = myRequest.GetRequestStream()
            ' Send the data.
            newStream.Write(data, 0, data.Length)
            newStream.Close()
 
        Catch ex As Exception
 
	End Try
 
End Sub

Open in new window

Comment
Watch Question

You might find the WebRequest class easier to work with:
http://msdn.microsoft.com/en-us/library/system.net.webrequest.aspx
 

Author

Commented:
daveamour:

Thanks for you reply.

I am using the attached code snippet from MS$ example.

When I use this URL https://email.company.com/ I get an error message as
below. But when I use this URL http://gsexdev.blogspot.com/ it seems to be fine.

Any ideas why and how to fix this? Note that the first one is actually an HTTPs.

ERROR MESSAGE
==============

{"The remote server returned an error: (400) Bad Request."}
"   at System.Net.HttpWebRequest.GetResponse()    
at WebRequestTest.RequestResponse.RequestingaResponse() in C:\download\WebRequestTest\WebRequestTest\RequestIT.vb:line 16"

 Public Shared Sub RequestingaResponse()
        Try
            ' Create a request for the URL.         
            Dim request As WebRequest = WebRequest.Create("https://email.isp.company.com/")
            'Dim request As WebRequest = WebRequest.Create("http://gsexdev.blogspot.com/")
 
            ' If required by the server, set the credentials.
            request.Credentials = CredentialCache.DefaultCredentials
            ' Get the response.
            Dim response As HttpWebResponse = CType(request.GetResponse(), HttpWebResponse)
            ' Display the status.
            Console.WriteLine(response.StatusDescription)
            ' Get the stream containing content returned by the server.
            Dim dataStream As Stream = response.GetResponseStream()
            ' Open the stream using a StreamReader for easy access.
            Dim reader As New StreamReader(dataStream)
            ' Read the content.
            Dim responseFromServer As String = reader.ReadToEnd()
            ' Display the content. 
            Console.WriteLine(responseFromServer)
            ' Cleanup the streams and the response.
            reader.Close()
            dataStream.Close()
            response.Close()
 
        Catch ex As Exception
            MsgBox(ex.ToString)
        End Try
 
    End Sub

Open in new window

Are you able to show me the actual https address you are hitting?

Author

Commented:
Its our OWA address. Is there a way I can send this to you privately or hide it from general view?

Author

Commented:
How do I add a User Agent to that code? That might work.
Unlock this solution and get a sample of our free trial.
(No credit card required)
UNLOCK SOLUTION
Unlock the solution to this question.
Thanks for using Experts Exchange.

Please provide your email to receive a sample view!

*This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

OR

Please enter a first name

Please enter a last name

8+ characters (letters, numbers, and a symbol)

By clicking, you agree to the Terms of Use and Privacy Policy.