从经典的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
@KP
你应该实际使用从ASP /服务器端应用程序MSXML2.ServerXMLHTTP
。 XMLHTTP
只能用于客户端,因为它使用的WinInet不支持在服务器/服务应用程序中使用。
参见http://support.microsoft.com/kb/290761,问题3,4 & 5和
http://support.microsoft.com/kb/238425/。
这是非常重要的,否则你会遇到你的web应用程序挂起和各种奇怪的废话继续。
这里介绍的许多答案似乎涵盖了ClassicASP如何用于消费网络服务& REST调用。
在我看来,一个更加整洁的解决方案可能会让您的ClassicASP仅以REST格式提供数据。如果可能,让基于浏览器的客户端代码处理“混搭”。你应该能够做到这一点,而无需包含任何其他ASP组件。
所以,这里是我会怎么实体模型在ClassicASP崭新的REST支持:
- 提供一个单一的ASP网页作为着陆垫
- 接触焊盘将处理两个参数:动词和URL ,加上一组表单内容
- 使用某种开关块检查URL并将动词(和表单内容)引导到相关处理程序
- 处理程序将处理动词(PUT/POST/GET/DELETE )与表单内容一起,返回成功/失败代码加上适当的数据。
- 您的着陆垫将检查成功/失败的代码,并返回相应的HTTP状态以及任何返回的数据
你会从解码/编码格式的数据从/到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