2008-08-14 103 views
26

我想開始將我們的應用程序業務層移動到REST Web服務集合中。但是,我們的大多數Intranet都是使用傳統ASP構建的,大多數開發人員都是使用傳統ASP進行編程。理想情況下,爲了讓他們從獨特的一組web API中受益,必須從Classic ASP頁面調用它。從經典的ASP頁面調用REST Web服務

我沒有絲毫的想法如何做到這一點。

回答

25

您可以使用jQuery的組合使用JSON調用來從客戶端消費REST服務

如果你需要從ASP層的REST服務交互可以使用

MSXML2.ServerXMLHTTP

,如:

Set HttpReq = Server.CreateObject("MSXML2.ServerXMLHTTP") 
HttpReq.open "GET", "Rest_URI", False 
HttpReq.send 
+2

如果我的REST服務需要基本身份驗證會怎麼樣?第二種從傳統ASP調用它的方法會發生什麼變化? – mutex 2011-02-17 01:54:01

0

所有你需要的是一個HTTP客戶端。在.Net中,WebRequest運行良好。對於傳統的ASP,你需要一個特定的組件,如this one

3

這裏介紹的許多答案似乎涵蓋了ClassicASP如何用於消費網絡服務& REST調用。

在我看來,一個更加整潔的解決方案可能會讓您的ClassicASP僅以REST格式提供數據。如果可能,讓基於瀏覽器的客戶端代碼處理「混搭」。你應該能夠做到這一點,而無需包含任何其他ASP組件。

所以,這裏是我會怎麼實體模型在ClassicASP嶄新的REST支持:

  1. 提供一個單一的ASP網頁作爲着陸墊
  2. 接觸焊盤將處理兩個參數:動詞和URL ,加上一組表單內容
  3. 使用某種開關塊檢查URL並將動詞(和表單內容)引導到相關處理程序
  4. 處理程序將處理動詞(PUT/POST/GET/DELETE )與表單內容一起,返回成功/失敗代碼加上適當的數據。
  5. 您的着陸墊將檢查成功/失敗的代碼,並返回相應的HTTP狀態以及任何返回的數據

你會從解碼/編碼格式的數據從/到JSON的輔助類中獲益,因爲這將緩解您的客戶端實現(並可能簡化傳遞的數據量)。請參閱Any good libraries for parsing JSON in Classic ASP?的對話

最後,在客戶端,提供一種採用Verb,Url和數據有效負載的方法。在短期內,該方法將整理參數並將它們轉發到您的着陸臺。從長遠來看(一旦你從傳統的ASP切換)你的方法可以發送數據到'真實'的網址。

好運...

0

另一種可能的解決方案是寫一個.NET的DLL,使調用和返回結果(也許包裹類似RESTSharp - 給它定製你需要一個簡單的API)。然後,您將該DLL註冊爲一個COM DLL,並通過CreateObject方法將其用於您的ASP代碼中。

我已經完成了這項工作,例如創建簽名的JWT和salting和哈希密碼。它很好地工作(當你瘋狂地重寫ASP時)。