2 回答

TA貢獻(xiàn)1773條經(jīng)驗(yàn) 獲得超3個(gè)贊
如果要用ASP來調(diào)用WevService,就一定要使用SOAP Toolkit或者XMLHTTP, 使用SOAP Client需要專門安裝SOAP Toolkit,這對客戶端來說不具有通用性,因此我們就學(xué)習(xí)使用XML來進(jìn)行對WebService的調(diào)用。
<%
Set objHTTP = Server.CreateObject( "MSXML2.XMLHTTP ")
Set xmlDOC =Server.CreateObject( "MSXML.DOMDocument ")
strWebserviceURL = "http://localhost/WebService1/Service1.asmx/Add "
'設(shè)置參數(shù)和值
strRequest = "a=5&b=6 "
objHTTP.Open "POST ", strWebserviceURL, False
'設(shè)置Content-Type很重要
objHTTP.SetRequestHeader "Content-Type ", "application/x-www-form-urlencoded "
objHTTP.Send(strRequest)
bOK = xmlDOC.load(objHTTP.responseXML)
'查看狀態(tài)值
if objHTTP.Status=200 then
xmlStr = xmlDOC.xml
xmlStr = Replace(xmlStr, "< ", " < ",1,-1,1)
xmlStr = Replace(xmlStr, "> ", "> ",1,-1,1)
Response.Write xmlStr
else
Response.Write objHTTP.Statu& " <br> "
Response.Write objHTTP.StatusText
end if
%>
以上代碼在本地測試都沒有問題(在部署webservice的本地機(jī)器上測試的),然而把strWebserviceURL = "http://localhost/WebService1/Service1.asmx/Add "改為部署在其他機(jī)器上的WebService時(shí),卻出了問題,結(jié)果一直是返回500錯誤,即objHTTP.Status一直都為500。
原因在于.Net Framework1.1默認(rèn)不支持HttpGet和HttpPost。如果修改webservice里的web.config增加上代碼5后,上代碼就可以調(diào)用遠(yuǎn)程機(jī)器上的WebService了。
<webServices>
<protocols>
<add name= "HttpPost "/>
<add name= "HttpGet "/>
</protocols>
</webServices>
- 2 回答
- 0 關(guān)注
- 773 瀏覽
添加回答
舉報(bào)