Проверить, работает ли 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