----INDEX----
1. Seifenanforderungsmethode
2. Post-Request-Methode
3. SHOWALLNODE-Funktion (über Knotenattribute und Datenanzeige)
--------------------------
eins. Beispiel für eine SOAP-Anfrage Nachfolgend finden Sie ein Beispiel für eine SOAP-Anfrage. Die angezeigten Platzhalter müssen durch tatsächliche Werte ersetzt werden.
POST /WebService1/UserSignOn.asmx HTTP/1.1
Host: 192.100.100.81
Inhaltstyp: text/xml; charset=utf-8
Inhaltslänge: Länge
SOAPAction: " http://tempuri.org/LoginByAccount "
<?xml version="1.0" binding="utf-8"?>
<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/ ">
<soap:Body>
<LoginByAccount xmlns=" http://tempuri.org/ ">
<Benutzername>Zeichenfolge</Benutzername>
<password>string</password>
</LoginByAccount>
</soap:Body>
</soap:Envelope>
Um mit WEBSERVICE zu interagieren, müssen Sie eine SOAP-Anfrage genau wie oben erstellen:
<%
url = " http://192.100.100.81/WebService1/UserSignOn.asmx "
SoapRequest="<?xml version="&CHR(34)&"1.0"&CHR(34)&" binding="&CHR(34)&"utf -8"&CHR(34)&"?>"& _
"<soap:Envelope xmlns:xsi="&CHR(34)&" http://www.w3.org/2001/XMLSchema-instance"&CHR(34 )&" "& _
"xmlns:xsd="&CHR(34)&" http://www.w3.org/2001/XMLSchema"&CHR(34 )&" "& _
"xmlns:soap="&CHR(34)&" http://schemas.xmlsoap.org/soap/envelope/"&CHR(34 )&">"& _
"<soap:Body>"& _
"<LoginByAccount xmlns="&CHR(34)&" http://tempuri.org/"&CHR(34 )&">"& _
"<Benutzername>"&Benutzername&"</Benutzername>"& _
"<password>"&password&"</password>"& _
"</LoginByAccount>"& _
"</soap:Body>"& _
"</soap:Envelope>"
Set xmlhttp = server.CreateObject("Msxml2.XMLHTTP")
xmlhttp.Öffnen Sie „POST“,url,false
xmlhttp.setRequestHeader „Content-Type“, „text/xml;charset=utf-8“
xmlhttp.setRequestHeader „HOST“, „192.100.100.81“
xmlhttp.setRequestHeader „Content-Length“,LEN(SoapRequest)
xmlhttp.setRequestHeader "SOAPAction", " http://tempuri.org/LoginByAccount " 'Muss derselbe Namespace wie WEBSERVICE sein, sonst wird der Dienst abgelehnt
xmlhttp.Send(SoapRequest)
„Dadurch wird erfolgreich eine SOAP-Anfrage gesendet, die dem SOAP-Beispiel über XMLHTTP entspricht.“
'Überprüfen Sie, ob es erfolgreich ist:
Response.Write xmlhttp.Status&“ “
Response.Write xmlhttp.StatusText
Setze xmlhttp = Nothing
%>
Bei Erfolg wird 200 ok angezeigt. Bei Erfolg wird 500 Internal Server Error angezeigt.
Nach Erfolg können Sie die Antwort von WEBSERVICE wie folgt verwenden:
Beispiel für eine SOAP-Antwort Nachfolgend finden Sie ein Beispiel für eine SOAP-Antwort. Die angezeigten Platzhalter müssen durch tatsächliche Werte ersetzt werden.
HTTP/1.1 200 OK
Inhaltstyp: text/xml; charset=utf-8
Inhaltslänge: Länge
<?xml version="1.0"kodierung="utf-8"?>
<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/ ">
<soap:Body>
<LoginByAccountResponse xmlns=" http://tempuri.org/ ">
<LoginByAccountResult>string</LoginByAccountResult>
</LoginByAccountResponse>
</soap:Body>
</soap:Envelope>
Dies ist das SOAP-Antwortbeispiel, das gerade dem SOAP-Anfragebeispiel entspricht. Nachdem die Anfrage erfolgreich gesendet wurde, können Sie die Antwort anzeigen:
Wenn xmlhttp.Status = 200, dann
setzen Sie xmlDOC =server.CreateObject("MSXML.DOMDocument").
xmlDOC.load(xmlhttp.responseXML)
xmlStr = xmlDOC.xml
Setzen Sie xmlDOC=nothing
xmlStr = Ersetzen(xmlStr,"<","<")
xmlStr = Ersetzen(xmlStr,">",">")
Response.write xmlStr
Sonst
Response.Write xmlhttp.Status&" "
Response.Write xmlhttp.StatusText
End if
Wenn die Anfrage korrekt ist, wird eine vollständige Antwort gegeben. Wenn die Anfrage falsch ist (z. B. sind die Kontonummer und das Passwort falsch), ist der Antwortinhalt unvollständig.
Rufen Sie die Daten in der Antwort wie folgt ab:
Wenn xmlhttp.Status = 200, dann
setzen Sie xmlDOC = server.CreateObject("MSXML.DOMDocument").
xmlDOC.load(xmlhttp.responseXML)
Response.Write xmlDOC.documentElement.selectNodes("//LoginByAccountResult")(0).text 'Zeigen Sie die Daten an, bei denen sich der Knoten LoginByAccountResult befindet (wenn er kodiert ist, muss er dekodiert werden)
Setze xmlDOC = nichts
anderes
Response.Write xmlhttp.Status&" "
Response.Write xmlhttp.StatusText
Ende
zeigt die FUNKTION jedes Attributs und jeder Daten eines Knotens an:
Funktion showallnode(rootname,myxmlDOC)' Ich hoffe, dass jeder es weiterhin vervollständigen wird. 2005-1-9 geschrieben von 844
if rootname<>"" then
set nodeobj=myxmlDOC.documentElement.selectSingleNode("//"&rootname&"")'Aktuelles Knotenobjekt
nodeAttributelen=myxmlDOC.documentElement.selectSingleNode("//"&rootname&"").attributes.length'Die aktuelle Anzahl der Knotenattribute
returnstring=returnstring&"<BR>Knotenname: "&rootname
if nodeobj.text<>"" then
returnstring=returnstring&"<BR>Der Text des Knotens: ("&nodeobj.text&")"
end if
returnstring=returnstring&"<BR>{<BR>"
if nodeAttributelen<>0 then
returnstring=returnstring&"<BR>Es gibt „&nodeAttributelen&“-Attribute, nämlich: „
end if
for i=0 to nodeAttributelen-1
returnstring=returnstring&"<li>"&nodeobj.attributes(i).Name&": "&nodeobj.getAttribute(nodeobj.attributes(i).Name)&" </li>"
next
if nodeobj.childNodes.Length<>0 then
Wenn nodeobj.hasChildNodes() und lcase(nodeobj.childNodes.item(0).nodeName)<>"#text" dann'ob es untergeordnete Knoten gibt
setze childnodeobj=nodeobj.childNodes
childnodelen=nodeobj.childNodes.Length
returnstring=returnstring&"<BR><BR>Es gibt „&childnodelen&" untergeordnete Knoten;<BR>Sie sind: "
für i=0 bis childnodelen-1
returnstring=returnstring&"<li>"&childnodeobj.item(i).nodeName&"</li>"
nächste
Ende wenn
end if
returnstring=returnstring&"<BR>}<BR>"
Response.write-Rückgabezeichenfolge
setze nodeobj=nichts
Ende wenn
Funktion beenden
Es kann wie folgt verwendet werden:
Wenn xmlhttp.Status = 200, dann
setzen Sie xmlDOC = server.CreateObject("MSXML.DOMDocument").
xmlDOC.load(xmlhttp.responseXML)
showallnode "LoginByAccountResponse",xmlDOC'Call SHOWALLNODE
Setze xmlDOC = nichts
anderes
Response.Write xmlhttp.Status&" "
Response.Write xmlhttp.StatusText
End if
2. Beispiel für eine POST-Anfrage
HTTP-POST
Unten finden Sie ein Beispiel für eine HTTP-POST-Anfrage. Die angezeigten Platzhalter müssen durch tatsächliche Werte ersetzt werden.
POST /WebService1/UserSignOn.asmx/LoginByAccount HTTP/1.1
Host: 192.100.100.81
Inhaltstyp: application/x-www-form-urlencoded
Inhaltslänge: Länge
Benutzername=Zeichenfolge&Passwort=Zeichenfolge
POST-Anfrage erstellen:
<%
url = " http://192.100.100.81/WebService1/UserSignOn.asmx/LoginByAccount "
SoapRequest="username="&username&"&password="&password
Set xmlhttp = server.CreateObject("Msxml2.XMLHTTP")
xmlhttp.Öffnen Sie „POST“,url,false
xmlhttp.setRequestHeader „Content-Type“, „application/x-www-form-urlencoded“‘Hinweis
xmlhttp.setRequestHeader „HOST“, „192.100.100.81“
xmlhttp.setRequestHeader "Content-Length",LEN(SoapRequest)
xmlhttp.Send(SoapRequest)
„Dadurch wird erfolgreich eine POST-Anfrage gesendet, die dem HTTP-POST-Beispiel mit XMLHTTP entspricht.“
'Überprüfen Sie, ob es erfolgreich ist:
Response.Write xmlhttp.Status&“ “
Response.Write xmlhttp.StatusText
Setze xmlhttp = Nothing
%>
Bei Erfolg wird 200 ok angezeigt. Bei Erfolg wird 500 Internal Server Error angezeigt.
Nach Erfolg können Sie die Antwort von WEBSERVICE wie folgt verwenden:
HTTP-POST
Unten finden Sie ein Beispiel für eine HTTP-POST-Antwort. Die angezeigten Platzhalter müssen durch tatsächliche Werte ersetzt werden.
HTTP/1.1 200 OK
Inhaltstyp: text/xml; charset=utf-8
Inhaltslänge: Länge
<?xml version="1.0"kodierung="utf-8"?>
<string xmlns=" http://tempuri.org/">string</string >
zeigen:
Wenn xmlhttp.Status = 200, dann
setzen Sie xmlDOC = server.CreateObject("MSXML.DOMDocument").
xmlDOC.load(xmlhttp.responseXML)
showallnode "string",xmlDOC'call SHOWALLNODE
Setze xmlDOC = nichts
anderes
Response.Write xmlhttp.Status&" "
Response.Write xmlhttp.StatusText
End if
Die obige Methode für ASP zum Senden einer SOAP-Anfrage und zum Aufrufen von WEBSERVICE. Wenn es eine bessere Methode gibt, kontaktieren Sie mich bitte per E-Mail: [email protected] HTTP-GET-Methode Es wird Probleme mit Chinesisch geben und die Datenmenge ist nicht groß. Die Verwendung der HTTP-POST-Methode scheint überflüssig zu sein. Tatsächlich verwendet das obige Beispiel die POST-Methode, es handelt sich jedoch nicht um eine POST-Anfrage. Um SOAP TOOLKIT nutzen zu können, müssen Sie Software installieren, eine Nachfolgeversion gibt es nicht. ---Ende des vollständigen Textes