Wywoływanie serwisów WWW REST z klasycznej strony asp
Chciałbym rozpocząć przenoszenie naszych warstw biznesowych aplikacji do zbioru usług internetowych REST. Jednak większość naszego intranetu została zbudowana przy użyciu klasycznego ASP, a większość programistów, w których pracuję, utrzymuje programowanie w klasycznym ASP. Najlepiej więc, aby mogli korzystać z zalet unikalnego zestawu interfejsów API sieci web, musiałby być wywoływany z klasycznych stron ASP.
Nie mam pojęcia, jak to zrobić.7 answers
Możesz użyć kombinacji JQuery z wywołaniami JSON, aby korzystać z usług REST od klienta
Lub
Jeśli potrzebujesz interakcji z usługami REST z warstwy ASP możesz użyć
MSXML2.ServerXMLHTTP
Jak:
Set HttpReq = Server.CreateObject("MSXML2.ServerXMLHTTP")
HttpReq.open "GET", "Rest_URI", False
HttpReq.send
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-08-14 16:10:31
@KP
Powinieneś używać MSXML2.ServerXMLHTTP
z aplikacji po stronie ASP/serwera. XMLHTTP
powinien być używany tylko po stronie klienta, ponieważ używa WinInet, który nie jest obsługiwany do użytku w aplikacjach serwerowych/usługowych.
Zobacz http://support.microsoft.com/kb/290761, pytania 3, 4 i 5 oraz
Http://support.microsoft.com/kb/238425/.
Jest to dość ważne, w przeciwnym razie doświadczysz wiszącej aplikacji internetowej i wszelkiego rodzaju dziwnych nonsensów on
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 12:34:51
Oto kilka artykułów opisujących jak wywołać serwis WWW ze strony ASP klasy:
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-08-14 15:49:01
Szereg przedstawionych tutaj odpowiedzi wydaje się obejmować, w jaki sposób ClassicASP może być używany do korzystania z usług internetowych i wywołań REST.
Moim zdaniem bardziej uporządkowanym rozwiązaniem może być serwowanie danych w formatach REST przez ClassicASP. Pozwól, aby Twój kod klienta oparty na przeglądarce obsługiwał "mashup", jeśli to możliwe. Powinieneś być w stanie to zrobić bez włączania żadnych innych komponentów ASP.
Oto jak zrobiłbym makietę nowego wsparcia REST w ClassicASP:
- zapewnij pojedynczą ASP strona, która działa jako lądowisko
- lądownik będzie obsługiwał dwa parametry: czasownik i URL oraz zestaw treści formularza
- Użyj jakiegoś bloku przełącznika Sprawdź adres URL i skieruj czasownik (i zawartość Formy) do odpowiedniego Handlera
- opiekun przetwarza czasownik (PUT / POST / GET / DELETE) wraz z treścią formularza, zwracając odpowiednio kod sukcesu/porażki oraz dane.
- twój lądownik sprawdzi kod sukcesu/porażki i zwróci odpowiedni status HTTP oraz wszelkie zwracane DANE
Skorzystasz z klasy wsparcia, która dekoduje / koduje dane formularza Z / do JSON, ponieważ ułatwi to implementację po stronie klienta (i potencjalnie usprawni ilość przesyłanych danych). Zobacz rozmowę tutaj na jakieś dobre biblioteki do parsowania JSON w klasycznym ASP?
Wreszcie, po stronie klienta, podaj metodę, która pobiera czasownik, adres Url i ładunek danych. W krótkim okresie metoda zestawi parametry i prześlij je na lądowisko. W dłuższej perspektywie (po przełączeniu się z klasycznego ASP) twoja metoda może wysłać dane do "prawdziwego" adresu url.
Powodzenia...
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 11:55:10
Wszystko czego potrzebujesz to klient HTTP. W. Net WebRequest działa dobrze. Do klasycznego ASP potrzebny będzie konkretny komponent, taki jak Ten .
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-08-14 15:54:08
Inną możliwością jest użycie obiektu WinHttp COM przy użyciu obiektu WinHttpRequest COM .
WinHttp został zaprojektowany do użycia z kodu serwera.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-09-13 05:14:17
Innym możliwym rozwiązaniem jest napisanie biblioteki DLL. NET, która wykonuje wywołania i zwraca wyniki (może owinąć coś w stylu RESTSharp-dać mu proste API dostosowane do Twoich potrzeb). Następnie zarejestrować DLL jako COM DLL i używać go w kodzie ASP za pomocą metody CreateObject.
Zrobiłem to dla rzeczy takich jak tworzenie podpisanych JWTs i solowanie i hashowanie haseł. Działa ładnie (podczas gdy pracujesz jak szalony, aby przepisać ASP).
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-11-21 21:02:43