【发布时间】:2010-09-05 21:20:25
【问题描述】:
我想开始将我们的应用程序业务层移动到 REST Web 服务的集合中。但是,我们的大部分 Intranet 都是使用 Classic ASP 构建的,而我工作的大多数开发人员都使用 Classic ASP 进行编程。理想情况下,为了让他们受益于一组独特的 Web API 的优势,必须从经典 ASP 页面调用它。
我一点也不知道该怎么做。
【问题讨论】:
标签: web-services rest asp-classic
我想开始将我们的应用程序业务层移动到 REST Web 服务的集合中。但是,我们的大部分 Intranet 都是使用 Classic ASP 构建的,而我工作的大多数开发人员都使用 Classic ASP 进行编程。理想情况下,为了让他们受益于一组独特的 Web API 的优势,必须从经典 ASP 页面调用它。
我一点也不知道该怎么做。
【问题讨论】:
标签: web-services rest asp-classic
您可以结合使用 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 来使用 Web 服务和 REST 调用。
在我看来,一个更简洁的解决方案可能是让您的 ClassicASP 仅以 REST 格式提供数据。如果可能,让您的基于浏览器的客户端代码处理“混搭”。您应该能够在不包含任何其他 ASP 组件的情况下做到这一点。
所以,我将在 ClassicASP 中模拟闪亮的新 REST 支持:
您将受益于将表单数据从/到 JSON 解码/编码的支持类,因为这将简化您的客户端实现(并可能简化传递的数据量)。在Any good libraries for parsing JSON in Classic ASP?查看对话
最后,在客户端,提供一个接受动词、网址和数据负载的方法。在短期内,该方法将整理参数并将它们转发到您的着陆台。从长远来看(一旦您从 Classic ASP 切换),您的方法可以将数据发送到“真实”网址。
祝你好运……
【讨论】:
另一种可能的解决方案是编写一个 .NET DLL 进行调用并返回结果(也许包装类似 RESTSharp 的东西 - 给它一个根据您的需要定制的简单 API)。然后将 DLL 注册为 COM DLL 并通过 CreateObject 方法在 ASP 代码中使用它。
我已经为创建签名的 JWT 以及加盐和散列密码等事情做到了这一点。它工作得很好(当你疯狂地重写 ASP 时)。
【讨论】:
另一种可能是使用 WinHttp COM 对象Using the WinHttpRequest COM Object。
WinHttp 旨在从服务器代码中使用。
【讨论】:
您只需要一个 HTTP 客户端。在 .Net 中,WebRequest 运行良好。对于经典 ASP,您将需要一个特定的组件,例如 this one。
【讨论】: