Aanroepen SOAP webservice op lokale computer (Excel 2007 VBA)

Status
Niet open voor verdere reacties.

Burst

Nieuwe gebruiker
Lid geworden
30 jun 2017
Berichten
3
Hallo forum,

Ben aan het experimenteren met SOAP webservices vanuit Excel2007.

Hieronder code welke ik vond op internet waarbij Button3 een "Hello" webservice beschikbaar op het internet succcesvol aanroept.

Met Button4 probeer ik een webservice op een lokaal IP adres aan te roepen. Ik probeer een machine gekoppeld aan dit IP adres te resetten.
Hiebij krijg echter steeds de reply dat de "endpoint" niet correct is.

Wat doe ik fout?

Hoe moet ik de webservice http://192.168.0.25/axis2/services/BrueBoxService en de functie /ResetRequest in deze code wel correct aanroepen?

Bij voorbaat dank voor alle hulp!

Burst




Code:
Private Sub CommandButton3_Click()
Rem [url]http://www.herongyang.com/Service/Hello_SOAP_11.php[/url]


Dim sEnv As String
    Dim xmlhtp As New MSXML2.XMLHTTP
    Dim xmlDoc As New DOMDocument
    sURL = "http://www.herongyang.com/Service/Hello_SOAP_11.php"
     
    sEnv = "<?xml version=""1.0"" encoding=""utf-8""?>"
    sEnv = sEnv & "<soap:Envelope xmlns:xsi=""http://www.w3.org/2001/XMLSchema-instance"" xmlns:xsd=""http://www.w3.org/2001/XMLSchema"" xmlns:soap=""http://schemas.xmlsoap.org/soap/envelope/"">"
    sEnv = sEnv & "  <soap:Body>"
    sEnv = sEnv & "      <ser:HelloRequest>/?</ser:HelloRequest>"
    sEnv = sEnv & "  </soap:Body>"
    sEnv = sEnv & "</soap:Envelope>"
    
    MsgBox ("SOAP Request is  :   " & vbCr & (sEnv))
     
    With xmlhtp
        .Open "post", sURL, False
        .setRequestHeader "Host", "www.herongyangcom"
        .setRequestHeader "Content-Type", "text/xml; charset=utf-8"
        .setRequestHeader "soapAction", "http://www.herongyang.com/Service/Hello_SOAP_11.php"
        .setRequestHeader "Accept-encoding", "zip"
        .send sEnv
        xmlDoc.LoadXML .responseText
         'xmlDoc.Save ThisWorkbook.Path & "\WebQueryResult.xml"
        MsgBox .responseText
    End With

End Sub

Private Sub CommandButton4_Click()

Rem sURL = "http://192.168.0.25/axis2/services/BrueBoxService/ResetRequest"

Dim sEnv As String
    Dim xmlhtp As New MSXML2.XMLHTTP
    Dim xmlDoc As New DOMDocument
    sURL = "http://192.168.0.25/axis2/services/BrueBoxService/ResetRequest"
     
   sEnv = ""
    sEnv = sEnv & "<s:Envelope xmlns:s=""http://schemas.xmlsoap.org/soap/envelope/""><s:Body xmlns:xsi=""http://www.w3.org/2001/XMLSchema-instance"" xmlns:xsd=""http://www.w3.org/2001/XMLSchema""><ResetRequest xmlns=""http://www.glory.co.jp/bruebox.xsd""><Id>30-6-2017 15:52:58</Id><SeqNo>12345678</SeqNo></ResetRequest></s:Body></s:Envelope> "
    
    MsgBox ("SOAP Request is  :   " & vbCr & (sEnv))
     
    With xmlhtp
        .Open "post", sURL, False
        .setRequestHeader "Host", "http://192.168.0.25"
        .setRequestHeader "Content-Type", "text/xml; charset=utf-8"
        .setRequestHeader "soapAction", "http://192.168.0.25/axis2/services/BrueBoxService/ResetRequest"
        .setRequestHeader "Accept-encoding", "zip"
        .send sEnv
        xmlDoc.LoadXML .responseText
         'xmlDoc.Save ThisWorkbook.Path & "\WebQueryResult.xml"
        MsgBox .responseText
    End With

End Sub
 
Laatst bewerkt door een moderator:
Google op "http://www.glory.co.jp/bruebox.xsd" misschien dat je dan iets vindt.
Misschien de regel ".setRequestHeader "Accept-encoding", "zip"" weglaten?
Als ik een aanvraagn doe bij het web laat ik zoveel mogelijk setRequestHeader weg.
 
Dank je alphamax...... helpt echter niet...

Foutmelding blijft:

<?xml version="1.0"?>
-<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Header/>
-<soapenv:Body>
-<soapenv:Fault>
<faultcode>soapenv:Server</faultcode>
<faultstring>Operation Not Found</faultstring>
-<detail>
<Exception>Operation Not Found, Endpoint referance address is http://192.168.0.25/axis2/services/BrueBoxService/ResetRequest and wsa actions is (null)</Exception>
</detail>
</soapenv:Fault>
</soapenv:Body>
</soapenv:Envelope>
 
Is het adres wel correct ?
 
Ik krijg het idee dat we hier te maken hebben met zeer specifieke hardware, is het een CashInfinity betaalautomaat (Glory)?
Neem contact op met de leverancier van de hardware.
 
Dat klopt... Ik werk voor die firma. Heb alle documentatie. Met behulp daarvan een app in Visual Basic geschreven die werkt.
Dacht dit "even" om te zetten naar VBA...

Valt tegen...

Burst
 
Visual Basic en Visual Basic for Applications zijn bijna helemaal gelijkwaardig.
Je kan zelfs precies dezelfde referenties gebruiken en zelfs precies dezelfde code.
Misschien moet je de code eens proberen met nieuwere of andere versies, zoals "Msxml2.XMLHTTP.6.0", "Msxml2.ServerXMLHTTP.6.0" of "Microsoft.XMLHTTP"
Ik kan me voorstellen dat beveiliging in de protocollen een struikelpunt kunnen zijn.
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan