我想開始將我們的應用程序業務層移動到REST Web服務集合中。但是,我們的大多數Intranet都是使用傳統ASP構建的,大多數開發人員都是使用傳統ASP進行編程。理想情況下,爲了讓他們從獨特的一組web API中受益,必須從Classic ASP頁面調用它。從經典的ASP頁面調用REST Web服務
我沒有絲毫的想法如何做到這一點。
我想開始將我們的應用程序業務層移動到REST Web服務集合中。但是,我們的大多數Intranet都是使用傳統ASP構建的,大多數開發人員都是使用傳統ASP進行編程。理想情況下,爲了讓他們從獨特的一組web API中受益,必須從Classic ASP頁面調用它。從經典的ASP頁面調用REST Web服務
我沒有絲毫的想法如何做到這一點。
您可以使用jQuery的組合使用JSON調用來從客戶端消費REST服務
或
如果你需要從ASP層的REST服務交互可以使用
MSXML2.ServerXMLHTTP
,如:
Set HttpReq = Server.CreateObject("MSXML2.ServerXMLHTTP")
HttpReq.open "GET", "Rest_URI", False
HttpReq.send
所有你需要的是一個HTTP客戶端。在.Net中,WebRequest運行良好。對於傳統的ASP,你需要一個特定的組件,如this one。
@KP
你應該實際使用從ASP /服務器端應用程序MSXML2.ServerXMLHTTP
。 XMLHTTP
只能用於客戶端,因爲它使用的WinInet不支持在服務器/服務應用程序中使用。
參見http://support.microsoft.com/kb/290761,問題3,4 & 5和
http://support.microsoft.com/kb/238425/。
這是非常重要的,否則你會遇到你的web應用程序掛起和各種奇怪的廢話繼續。
另一種可能性是使用WinHttp COM對象Using the WinHttpRequest COM Object。
WinHttp被設計用於服務器代碼。
這裏介紹的許多答案似乎涵蓋了ClassicASP如何用於消費網絡服務& REST調用。
在我看來,一個更加整潔的解決方案可能會讓您的ClassicASP僅以REST格式提供數據。如果可能,讓基於瀏覽器的客戶端代碼處理「混搭」。你應該能夠做到這一點,而無需包含任何其他ASP組件。
所以,這裏是我會怎麼實體模型在ClassicASP嶄新的REST支持:
你會從解碼/編碼格式的數據從/到JSON的輔助類中獲益,因爲這將緩解您的客戶端實現(並可能簡化傳遞的數據量)。請參閱Any good libraries for parsing JSON in Classic ASP?的對話
最後,在客戶端,提供一種採用Verb,Url和數據有效負載的方法。在短期內,該方法將整理參數並將它們轉發到您的着陸臺。從長遠來看(一旦你從傳統的ASP切換)你的方法可以發送數據到'真實'的網址。
好運...
另一種可能的解決方案是寫一個.NET的DLL,使調用和返回結果(也許包裹類似RESTSharp - 給它定製你需要一個簡單的API)。然後,您將該DLL註冊爲一個COM DLL,並通過CreateObject方法將其用於您的ASP代碼中。
我已經完成了這項工作,例如創建簽名的JWT和salting和哈希密碼。它很好地工作(當你瘋狂地重寫ASP時)。
如果我的REST服務需要基本身份驗證會怎麼樣?第二種從傳統ASP調用它的方法會發生什麼變化? – mutex 2011-02-17 01:54:01