因為要做行動夢網WAP的一些接口,所以要用到這種方式,接下來會有ASP.net版本的,這個是ASP版本的,利用了MSXML2.XMLHTTP物件。
request.asp
dim Https
set Https=server.createobject("MSXML2.XMLHTTP")
'定義一個XMLHTTP物件
Https.open "POST"," http://127.0.0.1/testpost/response.asp",false
Https.send "<?xml version=""1.0""?><misc_command version=""1.6""><command_name>echo</command_name>
<command_data_block><sid>123456</sid><service_id>987654</service_id>
<sp_id>11111</sp_id><sp_password>22222</sp_password></command_data_block>
</misc_command>"
if Https.readystate=4 then
response.write "提交成功"
'readstate讀取狀態為4則成功,繼續後面的,不成功當然就不用繼續處理了dim objstream
set objstream = Server.CreateObject("adodb.stream")
'定義一個stream,因為讀過來的直接拿出來是亂碼的,所以得處理一下objstream.Type = 1
objstream.Mode =3
objstream.Open
objstream.Write Https.responseBody
objstream.Position = 0
objstream.Type = 2
objstream.Charset = "GB2312"
html = objstream.ReadText
'轉好碼,就放到html裡,好關閉這些物件objstream.Close
set objstream = nothing
set https=nothing
end if
response.write html
response.asp
'建立DOMDocument對象
Set xml = Server.CreateObject ("msxml2.DOMDocument")
xml.async = False
'裝載POST數據
xml.Load Request
If xml.parseError.errorCode <> 0 Then
response.write "無法正確接收資料" & "Description: " & xml.parseError.reason & "<br>Line: " & xml.parseError.Line
End If
set blogchild=xml.getElementsByTagName("misc_command")
'the_text=blogchild.item(0).childnodes(1).text
'the_text=blogchild.item(0).text
'for i=0 to blogchild.length-1
response.write the_text
利用這種方法,ASP呼叫Servlet或Web Service都是很輕鬆的!