Вызов веб-сервисов REST со классической страницы asp

Я хотел бы начать переносить наши бизнес-уровни приложений в набор веб-сервисов REST. Однако большая часть нашей интрасети была построена с использованием Classic ASP, и большинство разработчиков, где я работаю, продолжают программировать на Classic ASP. В идеале, для того, чтобы они могли воспользоваться преимуществами уникального набора веб-API, он должен вызываться со страниц классического ASP.

Я понятия не имею, как это сделать.

14.08.2008 15:34:26
7 ОТВЕТОВ
РЕШЕНИЕ

Вы можете использовать комбинацию JQuery с вызовами JSON, чтобы использовать REST-сервисы от клиента

или

если вам нужно взаимодействовать со службами REST из уровня ASP, вы можете использовать

MSXML2.ServerXMLHTTP

как:

Set HttpReq = Server.CreateObject("MSXML2.ServerXMLHTTP")
HttpReq.open "GET", "Rest_URI", False
HttpReq.send
29
14.08.2008 16:10:31
Что если для моей службы REST требуется базовая аутентификация? Что это изменит во втором методе вызова из классического ASP?
mutex 17.02.2011 01:54:01
6
14.08.2008 15:49:01

Все, что вам нужно, это HTTP-клиент. В .Net WebRequest работает хорошо. Для классического ASP вам понадобится определенный компонент, такой как этот .

0
14.08.2008 15:54:08

@ КП

Вы должны на самом деле использовать MSXML2.ServerXMLHTTPиз ASP / серверных приложений. XMLHTTPследует использовать только на стороне клиента, поскольку он использует WinInet, который не поддерживается для использования в приложениях сервера / службы.

См. Http://support.microsoft.com/kb/290761 , вопросы 3, 4 и 5 и

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

Это очень важно, в противном случае вы столкнетесь с зависанием вашего веб-приложения и всякой странной ерундой.

9
23.05.2017 12:34:51

Другой возможностью является использование COM-объекта WinHttp. Использование COM-объекта WinHttpRequest .

WinHttp был разработан для использования из серверного кода.

0
13.09.2008 05:14:17

Похоже, что некоторые ответы, представленные здесь, охватывают то, как ClassicASP может использоваться для использования вызовов веб-служб и REST.

На мой взгляд, более подходящим решением для вашего ClassicASP может быть просто обслуживание данных в форматах REST. Пусть ваш клиентский код на основе браузера обрабатывает 'mashup', если это возможно. Вы должны быть в состоянии сделать это без включения каких-либо других компонентов ASP.

Итак, вот как я бы смоделировал блестящую новую поддержку REST в ClassicASP:

  1. предоставить одну веб-страницу ASP, которая выступает в качестве посадочной площадки
  2. Целевая панель будет обрабатывать два параметра: глагол и URL, а также набор содержимого формы
  3. Используйте какой-то блок переключателей, проверьте URL и направьте глагол (и содержимое формы) соответствующему обработчику.
  4. Затем обработчик будет обрабатывать глагол (PUT / POST / GET / DELETE) вместе с содержимым формы, возвращая код успеха / ошибки плюс данные в зависимости от ситуации.
  5. Ваша посадочная панель проверит код успеха / сбоя и вернет соответствующий статус HTTP плюс все возвращенные данные

Вы бы выиграли от использования класса поддержки, который декодирует / кодирует данные формы из / в JSON, поскольку это облегчит реализацию на стороне клиента (и потенциально упростит объем передаваемых данных). Смотрите разговор здесь. Есть ли хорошие библиотеки для анализа JSON в Classic ASP?

И наконец, на стороне клиента предоставьте метод, который принимает данные Verb, Url и данные. В краткосрочной перспективе метод сопоставит параметры и направит их на посадочную площадку. В более долгосрочной перспективе (после того, как вы переключитесь с Classic ASP) ваш метод может отправить данные на «реальный» URL.

Удачи...

3
23.05.2017 11:55:10

Другим возможным решением является написание .NET DLL, которая выполняет вызовы и возвращает результаты (возможно, оберните что-то вроде RESTSharp - предоставьте ему простой API, адаптированный к вашим потребностям). Затем вы регистрируете DLL как COM DLL и используете ее в своем коде ASP через метод CreateObject.

Я сделал это для таких вещей, как создание подписанных JWT, соление и хэширование паролей. Это работает хорошо (пока вы работаете как сумасшедший, чтобы переписать ASP).

1
21.11.2017 21:02:43