----INDEKS----
1. metode permintaan sabun
2. metode permintaan posting
3. Fungsi SHOWALLNODE (tentang atribut node dan tampilan data)
--------------------------
satu. Contoh Permintaan SOAP Di bawah ini adalah contoh permintaan SOAP. Placeholder yang ditampilkan perlu diganti dengan nilai sebenarnya.
POST /WebService1/UserSignOn.asmx HTTP/1.1
Tuan rumah: 192.100.100.81
Tipe Konten: teks/xml; charset=utf-8
Panjang Konten: panjang
SOAPAction: " http://tempuri.org/LoginByAccount "
<?xml version="1.0" coding="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/ ">
<sabun:Tubuh>
<LoginByAccount xmlns=" http://tempuri.org/ ">
<nama pengguna>string</nama pengguna>
<kata sandi>string</kata sandi>
</LoginBerdasarkan Akun>
</sabun:Tubuh>
</sabun:Amplop>
Untuk berinteraksi dengan WEBSERVICE, Anda perlu membuat permintaan SOAP persis sama seperti di atas:
<%
url = " http://192.100.100.81/WebService1/UserSignOn.asmx "
SoapRequest="<?xml version="&CHR(34)&"1.0"&CHR(34)&" coding="&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 )&">"& _
"<sabun:Tubuh>"& _
"<LoginByAccount xmlns="&CHR(34)&" http://tempuri.org/"&CHR(34 )&">"& _
"<nama pengguna>"&nama pengguna&"</nama pengguna>"& _
"<kata sandi>"&kata sandi&"</kata sandi>"& _
"</LoginByAccount>"& _
"</soap:Body>"& _
"</soap:Envelope>"
Setel xmlhttp = server.CreateObject("Msxml2.XMLHTTP")
xmlhttp.Buka "POST", url, salah
xmlhttp.setRequestHeader "Tipe Konten", "teks/xml;charset=utf-8"
xmlhttp.setRequestHeader "HOST","192.100.100.81"
xmlhttp.setRequestHeader "Panjang Konten",LEN(SoapRequest)
xmlhttp.setRequestHeader "SOAPAction", " http://tempuri.org/LoginByAccount " 'Harus memiliki namespace yang sama dengan WEBSERVICE, jika tidak, layanan akan ditolak
xmlhttp.Kirim(Permintaan Sabun)
'Ini berhasil mengirimkan permintaan SOAP yang cocok dengan contoh SOAP menggunakan XMLHTTP.
'Periksa apakah berhasil:
Respon.Tulis xmlhttp.Status&” ”
Respon.Tulis xmlhttp.StatusText
Setel xmlhttp = Tidak Ada
%>
Jika berhasil, akan ditampilkan 200 ok. Jika tidak berhasil, 500 Internal Server Error akan ditampilkan.
Setelah berhasil, Anda dapat menggunakan respon dari WEBSERVICE, sebagai berikut:
Contoh Respon SOAP Di bawah ini adalah contoh respon SOAP. Placeholder yang ditampilkan perlu diganti dengan nilai sebenarnya.
HTTP/1.1 200 Oke
Tipe Konten: teks/xml; charset=utf-8
Panjang Konten: panjang
<?xml version="1.0" coding="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/ ">
<sabun:Tubuh>
<LoginByAccountResponse xmlns=" http://tempuri.org/ ">
<LoginByAccountResult>string</LoginByAccountResult>
</LoginByAccountResponse>
</sabun:Tubuh>
</sabun:Amplop>
Ini adalah contoh respons SOAP yang sesuai dengan contoh permintaan SOAP tadi. Setelah permintaan berhasil dikirim, Anda dapat melihat responsnya:
Jika xmlhttp.Status = 200 Kemudian
Setel xmlDOC =server.CreateObject("MSXML.DOMDocument")
xmlDOC.beban(xmlhttp.responseXML)
xmlStr = xmlDOC.xml
Setel xmlDOC=tidak ada
xmlStr = Ganti(xmlStr,"<","<")
xmlStr = Ganti(xmlStr,">",">")
Respon.tulis xmlStr
Lain.Tulis
xmlhttp.Status&" "
Respon.Tulis xmlhttp.StatusText
Berakhir jika
Jika permintaan benar, maka respons lengkap akan diberikan. Jika permintaan salah (misalnya nomor akun dan kata sandi salah), konten respons tidak lengkap.
Dapatkan data dalam respon sebagai berikut:
Jika xmlhttp.Status = 200 Kemudian
Setel xmlDOC = server.CreateObject("MSXML.DOMDocument")
xmlDOC.beban(xmlhttp.responseXML)
Response.Write xmlDOC.documentElement.selectNodes("//LoginByAccountResult")(0).text 'Menampilkan data di mana node berada LoginByAccountResult (jika dikodekan, maka harus didekode)
Setel xmlDOC = tidak ada
yang lain
Respons.Tulis xmlhttp.Status&" "
Respon.Tulis xmlhttp.StatusText
Berakhir jika
menampilkan FUNGSI setiap atribut dan data sebuah node:
Fungsi showallnode(rootname,myxmlDOC)' Saya harap semua orang akan terus menyelesaikannya pada 9-1-2005 yang ditulis oleh 844
jika rootname<>"" lalu
setel nodeobj=myxmlDOC.documentElement.selectSingleNode("//"&rootname&"")'Objek simpul saat ini
nodeAttributelen=myxmlDOC.documentElement.selectSingleNode("//"&rootname&"").attributes.length'Jumlah atribut node saat ini
returnstring=returnstring&"<BR>Nama node: "&rootname
if nodeobj.text<>"" lalu
returnstring=returnstring&"<BR>Teks simpul: ("&nodeobj.text&")"
berakhir jika
returnstring=returnstring&"<BR>{<BR>"
jika nodeAttributelen<>0 lalu
returnstring=returnstring&"<BR>Ada atribut "&nodeAttributelen&", yaitu: "
berakhir jika
untuk i=0 hingga nodeAttributelen-1
returnstring=returnstring&"<li>"&nodeobj.attributes(i).Name&": "&nodeobj.getAttribute(nodeobj.attributes(i).Nama)&" </li>"
selanjutnya
jika nodeobj.childNodes.Length<>0 lalu
jika nodeobj.hasChildNodes() dan lcase(nodeobj.childNodes.item(0).nodeName)<>"#text" maka apakah ada node anak
atur childnodeobj=nodeobj.childNodes
childnodelen=nodeobj.childNodes.Panjangnya
returnstring=returnstring&"<BR><BR>Ada node turunan "&childnodelen&";<BR>Mereka adalah: "
untuk i=0 hingga childnodelen-1
returnstring=returnstring&"<li>"&childnodeobj.item(i).nodeName&"</li>"
Berikutnya
berakhir jika
berakhir jika
returnstring=returnstring&"<BR><BR>"
respon.tulis returnstring
atur nodeobj=tidak ada
berakhir jika
Fungsi Akhir
Ini dapat digunakan seperti ini:
Jika xmlhttp.Status = 200 Kemudian
Setel xmlDOC = server.CreateObject("MSXML.DOMDocument")
xmlDOC.beban(xmlhttp.responseXML)
showallnode "LoginByAccountResponse",xmlDOC'Panggil SHOWALLNODE
Setel xmlDOC = tidak ada
yang lain
Respons.Tulis xmlhttp.Status&" "
Respon.Tulis xmlhttp.StatusText
Berakhir jika
2. Contoh permintaan POST
POSTING HTTP
Di bawah ini adalah contoh permintaan HTTP POST. Placeholder yang ditampilkan perlu diganti dengan nilai sebenarnya.
POST /WebService1/UserSignOn.asmx/LoginByAccount HTTP/1.1
Tuan rumah: 192.100.100.81
Tipe Konten: application/x-www-form-urlencoded
Panjang Konten: panjang
nama pengguna=string&kata sandi=string
Buat permintaan POST:
<%
url = " http://192.100.100.81/WebService1/UserSignOn.asmx/LoginByAccount "
SoapRequest="username="&username&"&password="&password
Set xmlhttp = server.CreateObject("Msxml2.XMLHTTP")
xmlhttp.Buka "POST", url, salah
xmlhttp.setRequestHeader "Tipe Konten", "application/x-www-form-urlencoded"'Catatan
xmlhttp.setRequestHeader "HOST","192.100.100.81"
xmlhttp.setRequestHeader "Panjang Konten",LEN(SoapRequest)
xmlhttp.Send(SoapRequest)
'Ini berhasil mengirimkan permintaan POST yang cocok dengan contoh HTTP POST menggunakan XMLHTTP.
'Periksa apakah berhasil:
Respon.Tulis xmlhttp.Status&” ”
Respon.Tulis xmlhttp.StatusText
Setel xmlhttp = Tidak Ada
%>
Jika berhasil, akan ditampilkan 200 ok. Jika tidak berhasil, 500 Internal Server Error akan ditampilkan.
Setelah berhasil, Anda dapat menggunakan respon dari WEBSERVICE, sebagai berikut:
POSTING HTTP
Di bawah ini adalah contoh respons HTTP POST. Placeholder yang ditampilkan perlu diganti dengan nilai sebenarnya.
HTTP/1.1 200 Oke
Tipe Konten: teks/xml; charset=utf-8
Panjang Konten: panjang
<?xml version="1.0" coding="utf-8"?>
<string xmlns=" http://tempuri.org/">string</string >
menunjukkan:
Jika xmlhttp.Status = 200 Kemudian
Setel xmlDOC = server.CreateObject("MSXML.DOMDocument")
xmlDOC.beban(xmlhttp.responseXML)
showallnode "string",xmlDOC panggil SHOWALLNODE
Setel xmlDOC = tidak ada
yang lain
Respons.Tulis xmlhttp.Status&" "
Respon.Tulis xmlhttp.StatusText
Berakhir jika
Di atas adalah metode ASP menggunakan komponen XMLHTTP untuk mengirim permintaan SOAP dan memanggil WEBSERVICE. Saya sarankan menggunakan metode pertama di lingkungan ASP. Jika ada metode yang lebih baik, silakan hubungi saya mailto: [email protected] Metode HTTP GET Akan ada masalah dengan bahasa Mandarin, dan jumlah datanya tidak banyak. Menggunakan metode HTTP POST terasa berlebihan. Sebenarnya contoh di atas menggunakan metode POST, tetapi ini bukan permintaan POST. Untuk menggunakan SOAP TOOLKIT, Anda perlu menginstal perangkat lunak, dan tidak ada versi penggantinya. ---Akhir teks lengkap