Index ----
1. Soap Request Method
2. POST Request Method
3. showallnode function (displays attributes and data of nodes)
---------------------
I. SOAP request example
The following is a SOAP request example. The displayed placeholder must be replaced by the actual value.
Post/webservice1/usersignon. asmx HTTP/1.1
HOST: 192.100.100.81
Content-Type: text/XML; charset = UTF-8
Content-Length: Length
Soapaction: "http://tempuri.org/LoginByAccount"
<? XML version = "1.0" encoding = "UTF-8"?>
<Soap: envelope xmlns: xsi = "The http://www.w3.org/2001/XMLSchema-instance" xmlns: XSD = "The http://www.w3.org/2001/XMLSchema" xmlns: Soap = "The http://schemas.xmlsoap.org/soap/envelope/">
<Soap: Body>
<Loginbyaccount xmlns = "http://tempuri.org/">
<Username> string </username>
<Password> string </password>
</Loginbyaccount>
</Soap: Body>
</Soap: envelope>
To interact With WebService, You need to construct a SOAP request that is exactly the same as the preceding one:
<%
Url = "http: // 192.100.100.81/webservice1/usersignon. asmx"
Soaprequest = "<? XML version = "& CHR (34) &" 1.0 "& CHR (34) &" encoding = "& 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) & "> "&_
"<Username>" & username & "</username> "&_
"<Password>" & password & "</password> "&_
"</Loginbyaccount> "&_
"</Soap: Body> "&_
"</Soap: envelope>"
Set XMLHTTP = server. Createobject ("msxml2.xmlhttp ")
XMLHTTP. Open "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" 'must be the same as the WebService namespace, otherwise the service will reject
XMLHTTP. Send (soaprequest)
'Then, the SOAP request that matches the soap example is successfully sent using XMLHTTP.
'Check whether it is successful:
Response. Write XMLHTTP. Status & "& nbsp ;"
Response. Write XMLHTTP. statustext
Set XMLHTTP = nothing
%>
If it succeeds, the system displays 200 OK. If it fails, the system displays 500 internal server error: keep connection: keep-alive.
The WebService response can be used as follows:
Soap response example
The following is a soap response example. The displayed placeholder must be replaced by the actual value.
HTTP/1.1 200 OK
Content-Type: text/XML; charset = UTF-8
Content-Length: Length
<? XML version = "1.0" encoding = "UTF-8"?>
<Soap: envelope xmlns: xsi = "The http://www.w3.org/2001/XMLSchema-instance" xmlns: XSD = "The http://www.w3.org/2001/XMLSchema" xmlns: Soap = "The http://schemas.xmlsoap.org/soap/envelope/">
<Soap: Body>
<Loginbyaccountresponse xmlns = "http://tempuri.org/">
<Loginbyaccountresult> string </loginbyaccountresult>
</Loginbyaccountresponse>
</Soap: Body>
</Soap: envelope>
This is the soap response example corresponding to the SOAP request example. After the request is successfully sent, you can view the response:
If xml http. Status = 200 then
Set xmldoc = server. Createobject ("MSXML. domdocument ")
Xmldoc. Load (XMLHTTP. responsexml)
Xmlstr = xmldoc. xml
Set xmldoc = nothing
Xmlstr = Replace (xmlstr, "<", "& lt ;")
Xmlstr = Replace (xmlstr, ">", "& gt ;")
Response. Write xmlstr
Else
Response. Write XMLHTTP. Status & "& nbsp ;"
Response. Write XMLHTTP. statustext
End if
If the request is correct, a complete response is provided. If the request is incorrect (such as the account or password is incorrect), the response content is incomplete.
Retrieve the data in the response as follows:
If xml http. Status = 200 then
Set xmldoc = server. Createobject ("MSXML. domdocument ")
Xmldoc. Load (XMLHTTP. responsexml)
Response. Write xmldoc.doc umentelement. selectnodes ("// loginbyaccountresult") (0). text' displays data whose node is loginbyaccountresult (decoded if encoding is available)
Set xmldoc = nothing
Else
Response. Write XMLHTTP. Status & "& nbsp ;"
Response. Write XMLHTTP. statustext
End if
Function that displays the attributes and data of a node:
Function showallnode (rootname, myxmldoc )'
If rootname <> "" then
Set nodeobj1_myxmldoc.doc umentelement. selectsinglenode ("//" & rootname & "") 'current node Image
Nodeattributelenode myxmldoc.doc umentelement. selectsinglenode ("//" & rootname & ""). Attributes. Length 'current node attribute count
Returnstring = returnstring & "<br> node name:" & rootname
If nodeobj. Text <> "" then
Returnstring = returnstring & "<br> node text: (" & nodeobj. Text &")"
End if
Returnstring = returnstring & "<br >{< br>"
If nodeattributelen <> 0 then
Returnstring = returnstring & "<br> the number of attributes is & nbsp;" & nodeattributelen & ", which are :"
End if
For I = 0 to nodeAttributelen-1
Returnstring = returnstring & "<li>" & nodeobj. attributes (I ). name & ": & nbsp;" & nodeobj. getattribute (nodeobj. attributes (I ). name) & "</LI>"
Next
If nodeobj. childnodes. Length <> 0 then
If nodeobj. haschildnodes () and lcase (nodeobj. childnodes. Item (0). nodename) <> "# text" then' indicates whether a subnode exists.
Set childnodeobj = nodeobj. childnodes
Childnodelen = nodeobj. childnodes. Length
Returnstring = returnstring & "<br> there are" & childnodelen & "subnodes. <br> they are :"
For I = 0 to childnodelen-1
Returnstring = returnstring & "<li>" & childnodeobj. Item (I). nodename & "</LI>"
Next
End if
End if
Returnstring = returnstring & "<br >}< br>"
Response. Write returnstring
Set nodeobj = nothing
End if
End Function
It can be used as follows:
If xml http. Status = 200 then
Set xmldoc = server. Createobject ("MSXML. domdocument ")
Xmldoc. Load (XMLHTTP. responsexml)
Showallnode "loginbyaccountresponse", xmldoc 'calls showallnode
Set xmldoc = nothing
Else
Response. Write XMLHTTP. Status & "& nbsp ;"
Response. Write XMLHTTP. statustext
End if
Ii. POST request example
HTTP POST
The following is an example of an http post request. The displayed placeholder must be replaced by the actual value.
Post/webservice1/usersignon. asmx/loginbyaccount HTTP/1.1
HOST: 192.100.100.81
Content-Type: Application/X-WWW-form-urlencoded
Content-Length: Length
Username = string & Password = string
Construct a POST request:
<%
Url = "http: // 192.100.100.81/webservice1/usersignon. asmx/loginbyaccount"
Soaprequest = "username =" & username & "& Password =" & Password
Set XMLHTTP = server. Createobject ("msxml2.xmlhttp ")
XMLHTTP. Open "Post", URL, false
XMLHTTP. setRequestHeader "Content-Type", "application/X-WWW-form-urlencoded" 'Note
XMLHTTP. setRequestHeader "host", "192.100.100.81"
XMLHTTP. setRequestHeader "Content-Length", Len (soaprequest)
XMLHTTP. Send (soaprequest)
'In this way, the POST request with the http post sample is successfully sent using XMLHTTP.
'Check whether it is successful:
Response. Write XMLHTTP. Status & "& nbsp ;"
Response. Write XMLHTTP. statustext
Set XMLHTTP = nothing
%>
If it succeeds, the system displays 200 OK. If it fails, the system displays 500 internal server error: keep connection: keep-alive.
The WebService response can be used as follows:
HTTP POST
The following is an http post response example. The displayed placeholder must be replaced by the actual value.
HTTP/1.1 200 OK
Content-Type: text/XML; charset = UTF-8
Content-Length: Length
<? XML version = "1.0" encoding = "UTF-8"?>
<String xmlns = "http://tempuri.org/"> string </string>
Display:
If xml http. Status = 200 then
Set xmldoc = server. Createobject ("MSXML. domdocument ")
Xmldoc. Load (XMLHTTP. responsexml)
Showallnode "string", xmldoc 'calls showallnode
Set xmldoc = nothing
Else
Response. Write XMLHTTP. Status & "& nbsp ;"
Response. Write XMLHTTP. statustext
End if
The above is the method for ASP to send SOAP requests and call WebService using the XMLHTTP component. I recommend using the first method in the ASP environment. If there is a problem with the HTTP GET method, the data volume is small. The method of using http post is like this. In fact, the above example is the POST method, but not the POST request. The software must be installed with the soap toolkit, and no subsequent version is available. --- Full text