我想开始将我们的应用程序业务层移动到 REST Web 服务的集合中。但是,我们的大部分 Intranet 都是使用 Classic ASP 构建的,而我工作的大多数开发人员都使用 Classic ASP 进行编程。理想情况下,为了让他们受益于一组独特的 Web API 的优势,必须从经典 ASP 页面调用它。
我一点也不知道该怎么做。
我想开始将我们的应用程序业务层移动到 REST Web 服务的集合中。但是,我们的大部分 Intranet 都是使用 Classic ASP 构建的,而我工作的大多数开发人员都使用 Classic ASP 进行编程。理想情况下,为了让他们受益于一组独特的 Web API 的优势,必须从经典 ASP 页面调用它。
我一点也不知道该怎么做。
您可以结合使用 JQuery 和 JSON 调用来使用来自客户端的 REST 服务
或者
如果您需要与 ASP 层的 REST 服务进行交互,您可以使用
MSXML2.ServerXMLHTTP
像:
Set HttpReq = Server.CreateObject("MSXML2.ServerXMLHTTP")
HttpReq.open "GET", "Rest_URI", False
HttpReq.send
@KP _
您实际上应该MSXML2.ServerXMLHTTP
从 ASP/服务器端应用程序中使用。XMLHTTP
只能在客户端使用,因为它使用不支持在服务器/服务应用程序中使用的 WinInet。
请参阅http://support.microsoft.com/kb/290761,问题 3、4 和 5 以及
http://support.microsoft.com/kb/238425/。
这一点非常重要,否则您将体验到您的 Web 应用程序挂起和各种奇怪的废话。
这里有几篇描述如何从类 ASP 页面调用 Web 服务的文章:
这里提供的一些答案似乎涵盖了如何使用 ClassicASP 来使用 Web 服务和 REST 调用。
在我看来,一个更简洁的解决方案可能是让您的 ClassicASP 仅以 REST 格式提供数据。如果可能,让您的基于浏览器的客户端代码处理“混搭”。您应该能够在不合并任何其他 ASP 组件的情况下执行此操作。
所以,这就是我如何在 ClassicASP 中模拟闪亮的新 REST 支持:
您将从将表单数据从/到 JSON 解码/编码的支持类中受益,因为这将简化您的客户端实现(并可能简化传递的数据量)。请参阅任何用于在 Classic ASP 中解析 JSON 的好库?
最后,在客户端,提供一个接受 Verb、Url 和数据负载的方法。在短期内,该方法将整理参数并将它们转发到您的着陆台。从长远来看(一旦您从 Classic ASP 切换),您的方法可以将数据发送到“真实”网址。
祝你好运...
另一种可能的解决方案是编写一个 .NET DLL 进行调用并返回结果(也许包装类似 RESTSharp 的东西 - 给它一个根据您的需要定制的简单 API)。然后将 DLL 注册为 COM DLL 并通过 CreateObject 方法在 ASP 代码中使用它。
我已经为创建签名的 JWT 以及加盐和散列密码之类的事情做到了这一点。它工作得很好(当你疯狂地重写 ASP 时)。
您只需要一个 HTTP 客户端。在 .Net 中,WebRequest 运行良好。对于经典 ASP,您将需要一个像这样的特定组件。
另一种可能性是通过 WinHttpRequest COM 对象使用 WinHttp COM 对象。
WinHttp 旨在从服务器代码中使用。