Utwórz klienta dla usług internetowych w Javie

Nowe formaty przekazu informacji zmuszają nas do zmiany sposobu myślenia o naszych aplikacjach, z każdym dniem coraz bardziej uzależniamy się od Internetu, a wraz z nim również przesyłania danych pomiędzy odległymi miejscami i różnymi technologiami.

Integracja różnych technologii zawsze była wyzwaniem w przeszłości, ale przy nowych standardach i sile, jaką nabiera protokół HTTP teraz jest o wiele łatwiej, ponieważ nie jesteśmy uzależnieni od integracji aplikacji, ale każda aplikacja ma interfejs sieciowy do dyktowania jej danych.

w Jawa wiele razy będziemy musieli uzyskać dostęp do informacji, które mają lub generują inne aplikacje, dlatego nie możemy zaniedbać aspektu wiedzy o tym, jak nawiązywać połączenia z aplikacji Jawa do sieci. Ale nie tylko do sieci, musimy również wiedzieć, jak to zrobić klienci usług internetowych nawet jeśli jest to w sposób podstawowy, ponieważ dzięki temu upewnimy się, że nie zostaniemy odizolowani w naszym środowisku.

Czym są usługi internetowe?ten usługi internetowe Są to aplikacje znajdujące się na serwerach, które mają dostęp do sieci, mogą być w dowolnym języku lub technologii, jednak cała komunikacja ze „światem zewnętrznym” jest zarządzana przez HTTP i jej metody, POBIERZ, POST, PUT, USUŃ itp.

ZnajomościInteresującą rzeczą w tego typu aplikacjach jest możliwość tworzenia połączeń pomiędzy zupełnie różnymi technologiami, na przykład możemy mieć serwis internetowy napisany w języku Pyton aby zabrać nam inwentaryzację fabryki, a następnie w naszej aplikacji w Jawa łączymy się z nim, aby poznać ilości produktu.

Taka łatwość jest tym, co katapultowało ich szybkie przyjęcie w ostatnich latach i sprawiło, że oferowanie takich narzędzi w systemach i aplikacjach biznesowych stało się standardem. Oferują nawet aplikacje osobiste, takie jak blogi lub fora usługi internetowe aby ułatwić generowanie aplikacji mobilnych i aby wszystko pozostało w tym samym ekosystemie.

Zapoznawszy się już nieco z tematem usług internetowych, zobaczmy, jak są klasyfikowane.

Usługi REST


Tego typu usługi pozwalają na transmisję danych poprzez: HTTP, tylko przy użyciu metod tego protokołu, na ogół komunikacja wymaga jedynie przesłania danych za pośrednictwem formularzy lub JSON, niektórzy otrzymują nawet do XML.

Jest to obecnie najbardziej popularne, ponieważ konstrukcja klientów do konsumpcji jest bardzo prosta i nie wymaga wielu dodatkowych przygotowań. Po prostu po to, aby nasz klient mógł złożyć wniosek DOSTWAĆ do jednego URL usługi możemy zacząć z niej korzystać lub ją konsumować, ponieważ znana jest również akcja pozyskiwania danych.

Usługi SOAP


Usługi MYDŁO jest znacznie starszy niż ODPOCZYNEK, a jeszcze kilka lat temu był to standardowy sposób realizacji aplikacji usługi internetowe, jego budowa wymaga w szczególności przestrzegania niektórych protokołów i konieczne jest wygenerowanie pliku XML zwany WSDL, czyli tam, gdzie zdefiniowane są metody, do których klient może uzyskać dostęp.

Ze względu na dużą złożoność przygotowania klientów do korzystania z tego typu usługi, jej popularność spada, dlatego większość nowych technologii nie bierze jej pod uwagę. Jednak nadal istnieje wiele usług, które istnieją w świecie technologii, które są zarządzane w tej modalności, więc nawet jeśli wychodzą one z użycia, nadal trzeba wiedzieć, jak z nich korzystać.

Złożoność tego typu usługi polega na przygotowaniu różnych XML, i przestrzegaj standardów dotyczących platform, co do joty, tego typu powód sprawia, że ​​jest to uciążliwe i dlatego programiści migrują do ODPOCZYNEK.

Utwórz program, który łączy się za pomocą TCP


Ponieważ przeczytaliśmy i przejrzeliśmy nieco dokładniej, co reprezentuje teoretyczną część tego, czym one są? usługi internetowe, zaczniemy praktyczną część tego samouczka od wykonania bardzo podstawowego ćwiczenia, które pomoże nam zrozumieć przepływ rzeczy.

Zamierzamy nawiązać proste połączenie z naszej aplikacji przez sieć za pomocą TCP z zespołem, który jest w nim dostępny i dostępny, w tym celu będziemy musieli znać Twój adres IP oraz port, który jest dostępny i poza ograniczeniami różnych zapór.

WymaganiaPrzede wszystkim będziemy wymagać pakietu java.net.Socket to daje nam szereg narzędzi, które ułatwią nam życie poprzez nawiązywanie kontaktów, oczywiście przykład, który pokazujemy, jest bardzo prosty, ale daje nam podstawę do tworzenia rzeczy wykraczających poza nasze wymagania.

Zamierzamy stworzyć program, który będzie próbował połączyć się z maszyną przez określony port, jednak ten program również oceni, czy wystąpił błąd lub jakiekolwiek komplikacje podczas procesu połączenia, dzięki temu możemy działać sumiennie i nie czekać na fatalne niepowodzenie Spójrzmy na kod tego przykładu:

 import java.net.Socket; import java.net.UnknownHostException; import java.net.NoRouteToHostException; import java.net.ConnectException; public class ConnectionTest {public static void main (String [] argv) {String server = argv.length = = 1? argv [0]: "host lokalny"; port wewnętrzny = 80; try (Socket sock = new Socket (serwer, port)) {System.out.println ("- Pomyślne połączenie z:" + serwer + "-"); } catch (UnknownHostException e) {System.err.println (serwer + "Nieznany serwer"); powrót; } catch (NoRouteToHostException e) {System.err.println (serwer + "Poza zakresem"); powrót; } catch (ConnectException e) {System.err.println (serwer + "Połączenie odrzucone"); powrót; } catch (java.io.IOException e) {System.err.println (serwer + '' + e.getMessage ()); powrót; }}}
Zaczynamy od importu paczki java.net.Socket z tym będziemy mieli klasę Gniazdo elektryczne który to ten, którego użyjemy później do nawiązania połączenia, jeśli nie przekażemy mu argumentu podczas wykonywania programu, połączy się bezpośrednio z naszym komputerem, w tym przypadku wskazujemy port 80, ale może to być inny.

Umieszczamy tworzenie instancji Gniazdo elektryczne w bloku próbuj złapać pozwala nam to ocenić wyjątki, jeśli połączenie nie powiedzie się, zamiast nagle zakończyć program. Wreszcie mamy różne bloki catch, każdy z innym wyjątkiem, aby dać nam wyobrażenie o tym, co poszło nie tak.

Aby wyjątki działały, widzieliśmy, że na początku zaimportowaliśmy paczkę java.net którego użyjemy w tym przykładzie, zobaczmy teraz, jak to wszystko wygląda, gdy uruchamiamy nasz program. Podczas wykonywania naszego programu zobaczmy na poniższym obrazku, jak udało nam się pomyślnie uzyskać dostęp do naszego routera Wi-Fi i nasze Lokalny Gospodarz:

Klient usługi REST


W tym przykładzie stworzymy małego klienta usługi sieciowej, który połączy się z serwerem ODPOCZYNEK, do tego potrzebujemy tylko serwera, który może dać nam odpowiedź na metodę DOSTWAĆ z HTTP, dlatego możemy skorzystać z freegeoip.net, który w zależności od tego, co przekażemy przez URL, może zwrócić JSON z danymi z dowolnej strony internetowej, którą chcemy.

Zobaczmy kod, który stworzyliśmy:

 import java.net.URL; import java.net.URLConnection; import java.io.BufferedReader; import java.io.InputStreamReader; public class ClientRest {public static void main (args []) zgłasza wyjątek {URLConnection conn = nowy adres URL („http://freegeoip.net/json/www.espnf1.com”) .openConnection (); spróbuj (BufferedReader is = new BufferedReader (nowy InputStreamReader (conn.getInputStream ()))) {String line; while ((line = is.readLine())! = null) {System.out.println (line); }}}}
Pierwszą rzeczą, którą robimy, jest importowanie klas URL Tak Połączenie URL, pozwalają nam one najpierw przekonwertować ciąg na adres URL, który może być interpretowany przez Jawa a po drugie, nawiąż właściwe połączenie. Następnie importujemy dwie biblioteki klas, które pozwalają nam manipulować danymi, które otrzymamy jako odpowiedź z usługi sieciowej.

Na koniec łączymy się z usługą internetową freegeoip.netW tym przypadku przekazujemy do niego dowolną stronę, o której wiemy, że istnieje, w ten sposób możemy uzyskać jakiś wynik, następnie przechowujemy odpowiedź w buforze, a następnie ją odczytujemy i przekazujemy do obiektu String, w końcu wypisujemy treść i my uzyskamy coś takiego jak to, co widzimy na poniższym obrazku:

POWIĘKSZAĆ

Oczywiście jest to proste podejście, aby móc zrozumieć, jak działają usługi sieciowe, ponieważ nie obejmuje to wysyłania parametrów od naszego klienta, ale w tym celu można je udokumentować na Apache HttpClient, co może dać Ci doskonałe narzędzia w zakresie korzystania z tego typu usług internetowych, które pozostawiamy jako zadanie.

W ten sposób zakończyliśmy ten samouczek, zbudowaliśmy kilka programów, które pomagają nam nadążyć, aby móc opanować usługi internetoweDzięki temu widzimy już, jak nasz umysł z pewnością zacznie wyobrażać sobie najlepsze zastosowania tych narzędzi w naszych aplikacjach, a tym samym sprawić, że rzeczy będą znacznie większe.

Podobał Ci się i pomógł ten samouczek?Możesz nagrodzić autora, naciskając ten przycisk, aby dać mu pozytywny punkt
wave wave wave wave wave