27

アプリケーション ビジネス レイヤーを REST Web サービスのコレクションに移行したいと考えています。しかし、私たちのイントラネットのほとんどはクラシック ASP を使用して構築されており、私が働いているほとんどの開発者はクラシック 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 Web ページを提供する
  2. ランディング パッドは、動詞と URL、および一連のフォーム コンテンツの 2 つのパラメータを処理します。
  3. ある種のスイッチ ブロックを使用して URL を検査し、動詞 (およびフォーム コンテンツ) を関連するハンドラーに転送します。
  4. 次に、ハンドラーは動詞 (PUT/POST/GET/DELETE) をフォームの内容と共に処理し、成功/失敗コードとデータを適宜返します。
  5. ランディング パッドは成功/失敗コードを検査し、それぞれの HTTP ステータスと返されたデータを返します。

JSON との間でフォーム データをデコード/エンコードするサポート クラスを使用すると、クライアント側の実装が容易になる (そして、渡されるデータの量が潜在的に合理化される) ため、メリットがあります。クラシック ASP で JSON を解析するための良いライブラリはありますか?の会話を参照してください。

最後に、クライアント側で、Verb、Url、およびデータ ペイロードを受け取るメソッドを提供します。短期的には、メソッドはパラメーターを照合し、ランディング パッドに転送します。長期的には (クラシック ASP から切り替えると)、メソッドはデータを「実際の」URL に送信できます。

幸運を...

于 2011-01-12T15:39:19.303 に答える
0

もう 1 つの可能性は、WinHttpRequest COM オブジェクトを使用して WinHttp COM オブジェクトを使用することです。

WinHttp は、サーバー コードから使用できるように設計されています。

于 2008-09-13T05:14:17.513 に答える
0

必要なのは HTTP クライアントだけです。.Net では、WebRequest がうまく機能します。従来の ASP の場合、このような特定のコンポーネントが必要になります。

于 2008-08-14T15:54:08.557 に答える