Я'хотел бы начать перемещать бизнес-слои нашего приложения в набор веб-сервисов REST. Однако большая часть нашего интранета была построена с использованием Classic ASP, и большинство разработчиков, где я работаю, продолжают программировать на Classic ASP. Поэтому в идеале, чтобы они могли воспользоваться преимуществами уникального набора веб-интерфейсов API, его нужно было бы вызывать со страниц Classic ASP.
Я не имею ни малейшего представления о том, как это сделать.
Вы можете использовать комбинацию JQuery с вызовами JSON для потребления REST-сервисов с клиента
или
если вам нужно взаимодействовать с REST-сервисами из слоя ASP, вы можете использовать
MSXML2.ServerXMLHTTP
например:
Set HttpReq = Server.CreateObject("MSXML2.ServerXMLHTTP")
HttpReq.open "GET", "Rest_URI", False
HttpReq.send
Вы должны на самом деле использовать 'MSXML2. ServerXMLHTTP' от приложений стороны ASP/сервера. 'XMLHTTP' должен только быть используемой стороной клиента, потому что это использует WinInet, который не поддержан для использования в приложениях для сервера/обслуживания.
Посмотрите http://support.microsoft.com/kb/290761, вопросы 3, 4 & 5 и
http://support.microsoft.com/kb/238425/.
Это довольно важно, иначе you' ll испытывают Ваше веб-вывешивание приложения и все виды странного продолжения ерунды.
Вот несколько статей, описывающих, как вызвать веб-службу из ASP-страницы класса:
Много ответов, представленных здесь, кажется, касаются, как ClassicASP может использоваться, чтобы потреблять веб-сервисы & требования ОТДЫХА.
По-моему, более опрятное решение может быть для Вашего ClassicASP, чтобы просто служить данным в форматах ОТДЫХА. Позвольте своему основанному на браузере клиенту закодировать, обращаются с ' mashup' если это возможно. Вам необходимо сделать это, не включая никакие другие компоненты ASP.
Так, here' s, как я был бы макет новейшая поддержка ОТДЫХА в ClassicASP:
Вы извлекли бы выгоду из класса поддержки, который расшифровывает/кодирует данные о форме из JSON, так как это ослабит Ваше клиентское внедрение (и потенциально оптимизирует объем переданных данных). Посмотрите разговор здесь в Какие-либо хорошие библиотеки для парсинга JSON в Классическом ASP?
Наконец, в клиентском, предоставьте метод, который берет Глагол, URL и полезный груз данных. В ближайшей перспективе метод сопоставит параметры и отправит им Вашей посадочной площадке. В дальнейшей перспективе (как только Вы переключаетесь далеко от Классического ASP) Ваш метод может послать данные в ' real' URL.
Удача...
Другое возможное решение состоит в том, чтобы написать.NET DLL, который делает звонки и возвращается, результаты (возможно, обертывают что-то как RESTSharp - дают ему простой API, настроенный к Вашим потребностям). Тогда Вы регистрируете DLL как COM DLL и используете его в Вашем кодексе ASP с помощью метода CreateObject.
I' ve, сделанный это для вещей как создание подписанного JWTs и соление и хеширование паролей. Это работает приятно (в то время как Вы работаете как сумасшедший, чтобы переписать ASP).
Все, что вам нужно, - это HTTP-клиент. В .Net хорошо работает WebRequest. Для классического ASP вам понадобится специальный компонент, например вот этот.
Другая возможность состоит в том, чтобы использовать объект WinHttp COM [Используя Объект WinHttpRequest COM] [1].
WinHttp был разработан, чтобы использоваться из кодекса сервера.
[1]: http://msdn.microsoft.com/en-us/library/aa384079 (Против 85) .aspx