27

我想开始将我们的应用程序业务层移动到 REST Web 服务的集合中。但是,我们的大部分 Intranet 都是使用 Classic ASP 构建的,而我工作的大多数开发人员都使用 Classic ASP 进行编程。理想情况下,为了让他们受益于一组独特的 Web API 的优势,必须从经典 ASP 页面调用它。

我一点也不知道该怎么做。

4

7 回答 7

31

您可以结合使用 JQuery 和 JSON 调用来使用来自客户端的 REST 服务

或者

如果您需要与 ASP 层的 REST 服务进行交互,您可以使用

MSXML2.ServerXMLHTTP

像:

Set HttpReq = Server.CreateObject("MSXML2.ServerXMLHTTP")
HttpReq.open "GET", "Rest_URI", False
HttpReq.send
于 2008-08-14T15:49:27.413 回答
10

@KP _

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

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

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

这一点非常重要,否则您将体验到您的 Web 应用程序挂起和各种奇怪的废话。

于 2008-08-14T15:59:58.110 回答
6

这里有几篇描述如何从类 ASP 页面调用 Web 服务的文章:

于 2008-08-14T15:49:01.750 回答
3

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

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

所以,这就是我如何在 ClassicASP 中模拟闪亮的新 REST 支持:

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

您将从将表单数据从/到 JSON 解码/编码的支持类中受益,因为这将简化您的客户端实现(并可能简化传递的数据量)。请参阅任何用于在 Classic ASP 中解析 JSON 的好库?

最后,在客户端,提供一个接受 Verb、Url 和数据负载的方法。在短期内,该方法将整理参数并将它们转发到您的着陆台。从长远来看(一旦您从 Classic ASP 切换),您的方法可以将数据发送到“真实”网址。

祝你好运...

于 2011-01-12T15:39:19.303 回答
1

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

我已经为创建签名的 JWT 以及加盐和散列密码之类的事情做到了这一点。它工作得很好(当你疯狂地重写 ASP 时)。

于 2017-11-21T21:02:43.043 回答
0

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

于 2008-08-14T15:54:08.557 回答
0

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

WinHttp 旨在从服务器代码中使用。

于 2008-09-13T05:14:17.513 回答