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ć.
Author: Uwe, 2008-08-14

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
 27
Author: KP.,
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

 9
Author: Kev,
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
 6
Author: SitWalkStand,
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:

  1. zapewnij pojedynczą ASP strona, która działa jako lądowisko
  2. lądownik będzie obsługiwał dwa parametry: czasownik i URL oraz zestaw treści formularza
  3. Użyj jakiegoś bloku przełącznika Sprawdź adres URL i skieruj czasownik (i zawartość Formy) do odpowiedniego Handlera
  4. opiekun przetwarza czasownik (PUT / POST / GET / DELETE) wraz z treścią formularza, zwracając odpowiednio kod sukcesu/porażki oraz dane.
  5. 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...

 3
Author: ianmayo,
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 .

 0
Author: Vincent Robert,
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.

 0
Author: garretmagin,
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).

 0
Author: grahamesd,
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