Подтвердить что ты не робот

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

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

Я не имею ни малейшего представления, как это сделать.

4b9b3361

Ответ 1

Вы можете использовать комбинацию JQuery с вызовами JSON для использования служб REST с клиента

или

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

MSXML2.ServerXMLHTTP

как:

Set HttpReq = Server.CreateObject("MSXML2.ServerXMLHTTP")
HttpReq.open "GET", "Rest_URI", False
HttpReq.send

Ответ 2

@КП

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

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

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

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

Ответ 4

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

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

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

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

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

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

Удачи...

Ответ 5

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

Ответ 7

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

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