asp中访问web service的方法和例子

ASP本身没有支持Web Service的方法,只有通过XMLHTTP

例子一:

Set objHTTP = Server.CreateObject("MSXML2.XMLHTTP")
Set xmlDOC =Server.CreateObject("Microsoft.XMLDOM")
strWebserviceURL = "http://192.168.0.1/WebServiceTest/Service1.asmx/add"
'设置参数及其值
strRequest = "x="&request.Form("a")&"&y="&request.Form("b")
'strRequest = "tbname=123"
objHTTP.Open "POST", strWebserviceURL, False
'设置这个Content-Type很重要
objHTTP.SetRequestHeader "Content-Type", "application/x-www-form-urlencoded"
objHTTP.Send(strRequest)
bOK = xmlDOC.load(objHTTP.responseXML)
'看看状态值
if objHTTP.Status=200 then


Set docXSL = server.CreateObject("Microsoft.XMLDOM")
    docXSL.async = False
docXSL.load(server.MapPath("test1.xsl"))
'response.write docXSL.xml

Set docTran = server.CreateObject("Microsoft.XMLDOM")
    xmlDOC.transformNodeToObject docXSL,docTran
'response.write docTran.xml

xmlStr = docTran.xml
    xmlStr = Replace(xmlStr,"&lt;","<",1,-1,1)
    xmlStr = Replace(xmlStr,"&gt;",">",1,-1,1)
response.write xmlStr


end if
例子二:

关键你要知道找个服务有那些方法,如下面的Lookup,然后就是参数,
你可以构造xml文档,然后post到web 服务的asmx上面
sXml = ...
...
oXmlHttp.Send(sXml)
最后就可以得到它的返回,应该是xml的,采用dom去解析xml文档,得到你想要的结果.


<%
 strDomain = Request.Form("strDomain")
 strUrl = "http://whois.aspsir.com/whois.asmx/Lookup?strDomain=" & strDomain & ""
    Set oXmlHttp = Server.CreateObject("Microsoft.XMLHTTP")
    oXmlHttp.Open "GET", strUrl, False
    oXmlHttp.Send()
    If oXmlHttp.readyState <> 4 Then Response.Write Err.Description
    strResult = bytes2BSTR(oXmlHttp.responseBody)
 If Instr(strResult,"No match")<>0 Then
  Response.Write "域名[www." & strDomain & "]居然还没有被注册!"
 Else
  Response.Write "呵呵,来晚了一步!域名已经被注册~"
 End If
    Set oXmlHttp = Nothing

Function bytes2BSTR(vIn)
    Dim strReturn
    Dim I, ThisCharCode, NextCharCode
    strReturn = ""
    For I = 1 To LenB(vIn)
        ThisCharCode = AscB(MidB(vIn, I, 1))
        If ThisCharCode < &H80 Then
            strReturn = strReturn & Chr(ThisCharCode)
        Else
            NextCharCode = AscB(MidB(vIn, I + 1, 1))
            strReturn = strReturn & Chr(CLng(ThisCharCode) * &H100 + CInt(NextCharCode))
            I = I + 1
        End If
    Next
    bytes2BSTR = strReturn
End Function
%>

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值