Go Premium for a chance to win a PS4. Enter to Win

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 1164
  • Last Modified:

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

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
netimpact
Asked:
netimpact
  • 4
  • 2
1 Solution
 
daveamourCommented:
You might find the WebRequest class easier to work with:
http://msdn.microsoft.com/en-us/library/system.net.webrequest.aspx
 
0
 
netimpactAuthor 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

0
 
daveamourCommented:
Are you able to show me the actual https address you are hitting?
0
Concerto Cloud for Software Providers & ISVs

Can Concerto Cloud Services help you focus on evolving your application offerings, while delivering the best cloud experience to your customers? From DevOps to revenue models and customer support, the answer is yes!

Learn how Concerto can help you.

 
netimpactAuthor Commented:
Its our OWA address. Is there a way I can send this to you privately or hide it from general view?
0
 
netimpactAuthor Commented:
How do I add a User Agent to that code? That might work.
0
 
netimpactAuthor Commented:
Ok, I found another solution that worked using Webclient and User Agent.
0

Featured Post

Industry Leaders: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

  • 4
  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now