Сведения о вопросе

Junior

05:59, 8th August, 2020

Теги

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

Просмотров: 518   Ответов: 7

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

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



  Сведения об ответе

FAriza

01:17, 7th August, 2020

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

или

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

MSXML2.ServerXMLHTTP

любить:

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


  Сведения об ответе

DO__IT

07:34, 1st August, 2020

@ KP

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

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

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

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


  Сведения об ответе

COOL

18:20, 21st August, 2020

  Сведения об ответе

prince

16:05, 11th August, 2020

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

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

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

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

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

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

Удачи...


  Сведения об ответе

davran

21:23, 14th August, 2020

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

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


  Сведения об ответе

KOMP

03:24, 25th August, 2020

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


  Сведения об ответе

PIRLO

21:47, 17th August, 2020

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

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


Ответить на вопрос

Чтобы ответить на вопрос вам нужно войти в систему или зарегистрироваться