2013-10-25 50 views
1

嗨,我是在新的web服務,我想通過傳統的ASP如何在經典的asp中調用.net webservice?

<% 
    If Request.ServerVariables("REQUEST_METHOD") = "POST" Then 
    Dim xmlhttp 
    Dim DataToSend 
    DataToSend="val1="&Request.Form("text1")&"&val2="&Request.Form("text2") 
    Dim postUrl 
    If Request.Form.Item("Operation")="Sum" Then 
    postUrl = "//localhost/Test_ASP_Service1/Service1.asmx/Sum" 
    end if  
    Set xmlhttp = server.Createobject("Msxml2.ServerXMLHTTP.4.0") 
    xmlhttp.Open "POST",postUrl,true 
    xmlhttp.setRequestHeader "Content-Type","application/x-www-form-urlencoded" 
    xmlhttp.send DataToSend 
    Response.Write DataToSend & "<br>" 
    Response.Write(xmlhttp.responseText) 
Else 
    Response.Write "Loading for first Time" 
    End If 
%> 
<FORM method=POST name="form1" ID="Form1"> 
Enter the two Values to perform Operation<BR> 
    <select name="Operation">Select Operation<option value="Sum">Sum</option></select> 
    <INPUT type="text" name="text1" ID="Text1"> 
    <INPUT type="text" name="text2" ID="Text2"> 
<INPUT type="submit" value="GO" name="submit1" ID="Submit1"> 
</form> 

回答

1

調用服務你可能想看看的Microsoft SOAP Toolkit 3.0。儘管微軟網站上有關於你不應該使用它的說明,但它的效果非常好。他們只是顯示註釋以強調它是舊開發堆棧的一部分,他們沒有進一步開發支持.NET。您應該能夠找到大量在線使用SOAP Toolkit的代碼示例。否則,如果你不想使用它,那麼另一個選擇是編寫你自己的Web服務客戶端(包裝器),它通過COM接口公開所使用的數據,你可以在你的傳統ASP代碼中使用它。過去,我必須這樣做,因爲客戶堅持不使用SOAP Toolkit,僅僅是因爲微軟的網站上有文字說「不再支持」。

雖然任何一種方法都可以很好地工作,但如果您的webservice使用SOAP Toolkit無法正確解析的任何複雜類型,則可能需要使用第二種方法。如果你的服務使用了所有的基本類型,那麼這是一種快速而簡單的方法來支持你的傳統ASP代碼。