Solved

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

Posted on 2009-07-01
6
1,085 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

0
Comment
Question by:netimpact
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 4
  • 2
6 Comments
 
LVL 19

Expert Comment

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

Author Comment

by:netimpact
ID: 24794527
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

0
 
LVL 19

Expert Comment

by:daveamour
ID: 24794540
Are you able to show me the actual https address you are hitting?
0
The Orion Papers

Are you interested in becoming an AWS Certified Solutions Architect?

Discover a new interactive way of training for the exam.

 

Author Comment

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

Author Comment

by:netimpact
ID: 24795411
How do I add a User Agent to that code? That might work.
0
 

Accepted Solution

by:
netimpact earned 0 total points
ID: 24798185
Ok, I found another solution that worked using Webclient and User Agent.
0

Featured Post

Free Tool: Port Scanner

Check which ports are open to the outside world. Helps make sure that your firewall rules are working as intended.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

For those of you who don't follow the news, or just happen to live under rocks, Microsoft Research released a beta SDK (http://www.microsoft.com/en-us/download/details.aspx?id=27876) for the Xbox 360 Kinect. If you don't know what a Kinect is (http:…
Parsing a CSV file is a task that we are confronted with regularly, and although there are a vast number of means to do this, as a newbie, the field can be confusing and the tools can seem complex. A simple solution to parsing a customized CSV fi…
Add bar graphs to Access queries using Unicode block characters. Graphs appear on every record in the color you want. Give life to numbers. Hopes this gives you ideas on visualizing your data in new ways ~ Create a calculated field in a query: …
This tutorial will teach you the special effect of super speed similar to the fictional character Wally West aka "The Flash" After Shake : http://www.videocopilot.net/presets/after_shake/ All lightning effects with instructions : http://www.mediaf…

617 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question