我想开始将我们的应用程序业务层转移到 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

其他提示

@凯普

你实际上应该使用 MSXML2.ServerXMLHTTP 来自 ASP/服务器端应用程序。 XMLHTTP 只能在客户端使用,因为它使用 WinInet,但不支持在服务器/服务应用程序中使用。

http://support.microsoft.com/kb/290761, 、问题 3、4 和 5 以及

http://support.microsoft.com/kb/238425/.

这非常重要,否则您会遇到网络应用程序挂起以及发生各种奇怪的废话。

这里提供的许多答案似乎涵盖了如何使用 ClassicASP 来使用 Web 服务和 REST 调用。

在我看来,更简洁的解决方案可能是让您的 ClassicASP 仅以 REST 格式提供数据。如果可能的话,让基于浏览器的客户端代码处理“混搭”。您应该能够在不合并任何其他 ASP 组件的情况下完成此操作。

因此,以下是我在 ClassicASP 中模拟闪亮的新 REST 支持的方法:

  1. 提供单个 ASP 网页作为登陆平台
  2. 着陆垫将处理两个参数:动词和 URL,加上一组表单内容
  3. 使用某种 switch 块检查 URL 并将动词(和表单内容)定向到相关处理程序
  4. 然后,处理程序将处理动词 (PUT/POST/GET/DELETE) 以及表单内容,返回成功/失败代码以及适当的数据。
  5. 您的登陆平台将检查成功/失败代码并返回相应的 HTTP 状态以及任何返回的数据

您将受益于将表单数据从 JSON 解码/编码为 JSON 的支持类,因为这将简化您的客户端实现(并可能简化传递的数据量)。请参阅此处的对话 有什么好的库可以在经典 ASP 中解析 JSON 吗?

最后,在客户端,提供一个采用 Verb、Url 和数据负载的方法。在短期内,该方法将整理参数并将其转发到您的着陆场。从长远来看(一旦您放弃经典 ASP),您的方法可以将数据发送到“真实”url。

祝你好运...

另一种可能的解决方案是编写一个 .NET DLL 来进行调用并返回结果(可能包装类似 RESTSharp 的东西 - 为其提供一个根据您的需求定制的简单 API)。然后,将该 DLL 注册为 COM DLL,并通过 CreateObject 方法在 ASP 代码中使用它。

我已经这样做了一些事情,例如创建签名的 JWT 以及对密码进行加盐和哈希处理。它工作得很好(当你疯狂地重写 ASP 时)。

您所需要的只是一个 HTTP 客户端。在.Net 中,WebRequest 运行良好。对于经典 ASP,您将需要一个特定的组件,例如 这个.

另一种可能性是使用 WinHttp COM 对象 使用 WinHttpRequest COM 对象.

WinHttp 被设计为从服务器代码中使用。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top