Проверить, работает ли SOAP WSDL в скрипте vb?

Я пытаюсь проверить, включен ли WSDL и работает или нет в сценарии VB.

ЕСЛИ мы открываем WSDL в браузере, если мы получаем XML в этом, тогда WSDL включен и работает

Если он пустой / время ожидания / не отвечает, то WSDL ВНИЗ

Я хочу написать программу VB Script для этого?

Я ожидал что-то подобное в VB Script для запуска в QTP/UFT или EXCEL VBA MACRO.

Эта программа написана на 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?");
    }
}

Эта программа просто проверяет, загружается контент или нет, и решает, работает он или нет

Есть идеи

1 ответ

Решение

Нечто подобное должно работать.
Я тестировал с использованием веб-службы SharePoint 2010.

' 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

Ниже приведено аналогичное использование Microsoft WinHTTP Services v5.1 вместо 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
Другие вопросы по тегам