Search code examples
excelvbscriptqtphp-uftvba

Test if a SOAP WSDL is up or down in vb script?


I am trying to Verify if the WSDL is UP and Running or NOT in VB Script.

IF we open the WSDL in browser, if we get an XML in that then the WSDL is UP and Running

If it is blank/timing out/not responding then WSDL is DOWN

I want to write a VB Script program for this?

I was expecting some thing like this in VB Script to run in QTP/UFT or EXCEL VBA MACRO.

This program is written in Java

public static void main(String args[]) {
    String wsdl = "http://lxomavnat005.dev.qintra.com:10301/icl/services/ICL_2_0?wsdl";
    URL url = null;
    URLConnection urlConnection = null;
    try {

        url = new URL(wsdl);
        urlConnection = url.openConnection();

        if (urlConnection.getContent() != null) {
            System.out.println("GOOD URL");
        } else {
            System.out.println("BAD URL");
        }

    } catch (IOException ex) {

        System.out
                .println("Failed opening connection. Perhaps WS is not up?");
    }
}

This Program just check the content is loading or not and decides if it running or not

Any Ideas


Solution

  • Something like this should work.
    I tested using a SharePoint 2010 web service.

    ' TestWSDL - Test if WSDL is up and running
    Public Sub TestWSDL()
      Dim oHttpRequest As Object
      Dim oHttpResponse As Object
    
      On Error GoTo Trap
    
      Set oHttpRequest = CreateObject("Microsoft.XMLHTTP")
      oHttpRequest.Open "GET", "http://domain/path/_vti_bin/UserGroup.asmx?wsdl", False
      oHttpRequest.Send
    
      If oHttpRequest.ReadyState = 4 Then
        If oHttpRequest.Status = 200 Then
          Set oHttpResponse = oHttpRequest.ResponseXML
          If oHttpResponse Is Nothing Then
            MsgBox "bad url"
          Else
            MsgBox "good url"
            Set oHttpResponse = Nothing
          End If
        Else
          MsgBox oHttpRequest.Status & " - " & oHttpRequest.StatusText
        End If
      Else
        MsgBox oHttpRequest.ReadyState
      End If
    
    Trap:
      If Err <> 0 Then
        MsgBox Error(Err)
      End If
    
      Set oHttpRequest = Nothing
    End Sub
    

    Following is similar, using Microsoft WinHTTP Services v5.1 instead of Microsoft XMLHTTP

    Public Sub TestWinHTTP()
      Dim oHttpRequest As Object
    
      On Error GoTo Trap
    
      Set oHttpRequest = CreateObject("WinHttp.WinHttpRequest.5.1")
      oHttpRequest.Open "GET", "http://domain/path/_vti_bin/UserGroup.asmx?wsdl", False
    
      ' Need to use SetCredentials OR SetAutoLogonPolicy
      ' Set specific username / password
      'oHttpRequest.SetCredentials "username", "password", 0
    
      ' Use windows authentication
      oHttpRequest.SetAutoLogonPolicy 0
    
      ' Set timeout values -- host, connect, send, receive
      oHttpRequest.SetTimeouts 30000, 60000, 30000, 30000
    
      oHttpRequest.Send
    
      If oHttpRequest.Status = 200 Then
        If oHttpRequest.ResponseText = "" Then
          MsgBox "bad url"
        Else
          MsgBox "good url"
        End If
      Else
        MsgBox "bad url"
      End If
    
    Trap:
      If Err <> 0 Then
        MsgBox Error(Err)
      End If
    
      Set oHttpRequest = Nothing
    End Sub