Новите формати за трансфер на информация ни принуждават да променим начина, по който мислим за нашите приложения, всеки ден зависим повече от интернет, а с него и от предаването на данни между отдалечени места и различни технологии.
Интегрирането на различни технологии винаги е било предизвикателство в миналото, но с новите стандарти и силата, която протоколът е взел HTTP сега е много по -лесно, тъй като не зависим от интегрирането на приложения, но всяко приложение има уеб интерфейс, за да диктува своите данни.
В Java много пъти ще трябва да имаме достъп до информация, която други приложения имат или генерират и затова не можем да пренебрегнем аспекта на знанието как да правим връзки от приложение Java към мрежата. Но не само за мрежите, ние също трябва да знаем как да го направим клиенти на уеб услуги дори и да е по основен начин, тъй като с това ще се уверим, че няма да бъдем изолирани в нашата среда.
Какво представляват уеб услугите?The Уеб услуги Това са приложения, намиращи се на сървъри, които имат достъп до мрежа, те могат да бъдат на всеки език или технология, но цялата комуникация с „външния свят“ се управлява чрез HTTP и неговите методи, GET, POST, PUT, DELETE и др.
ВръзкиИнтересното при този тип приложения е възможността да се правят връзки между напълно различни технологии, например можем да имаме уеб услуга, написана на Python да ни вземе инвентаризацията на фабрика и след това в нашето приложение в Java ние се свързваме с него, за да знаем количествата на даден продукт.
Подобна лекота е причината за бързото им приемане през последните години и направи стандартно предлагането на такива инструменти, когато става въпрос за бизнес системи и приложения. Дори лични приложения като блогове или форуми предлагат Уеб услуги да улесни генерирането на мобилни приложения и всичко да остане в същата екосистема.
След като вече видяхме малко по темата за уеб услугите, нека видим как те са класифицирани.
REST услуги
Тези видове услуги позволяват предаването на данни чрез HTTP, използвайки само методите на този протокол, като цяло комуникацията изисква само изпращане на данни или чрез формуляри, или JSON, някои дори получават до XML.
Той е най -популярният в момента, тъй като изграждането на клиенти за консумация е много просто и не изисква много допълнителни подготовки. Просто, за да може нашият клиент да стартира заявка ПОЛУЧАВАЙТЕ до един URL адрес на услугата, която можем да започнем да използваме или консумираме, тъй като е известно и действието по получаване на данни.
SOAP услуги
Услугата САПУН е много по -стар от ПОЧИВКА, и до преди няколко години това беше стандартният начин за реализиране на приложения на Уеб услуги, неговата конструкция изисква следване на някои протоколи и е необходимо да се генерира файл XML Наречен WSDL, където се определят методите, до които клиентът има достъп.
Поради голямата сложност на подготовката на клиентите да използват този вид услуги, популярността му намалява, поради което повечето нови технологии не го вземат предвид. Въпреки това, все още съществуват много услуги, които съществуват в технологичния свят, които се управляват при тази модалност, така че въпреки че тя излиза от употреба, все още е необходимо да знаете как да я използвате.
Сложността на този вид услуга се състои в подготовката на различните XML, и да следват стандартите според платформите буквално, този тип причина го прави тромав и затова разработчиците са мигрирали към ПОЧИВКА.
Създайте програма, която се свързва чрез TCP
Тъй като прочетохме и прегледахме малко по -задълбочено какво представлява теоретичната част от това, което са те Уеб услуги, ще започнем практическата част на този урок, като направим едно много основно упражнение, което ще ни помогне да разберем потока от неща.
Ще направим проста връзка от нашето приложение през мрежата, използвайки TCP с екип, който е достъпен и достъпен в него, за това ще трябва да знаем вашия адрес IP и порт, който е наличен и извън ограниченията на различните защитни стени.
ИзискванияНа първо място, ние ще изискваме пакета java.net.Socket това ни дава поредица от инструменти, които ще улеснят живота ни чрез установяване на връзки, очевидно примерът, който показваме, е много основен, но ни дава основание да можем да създаваме неща, които зависят от нашите изисквания.
Ще създадем програма, която се опитва да се свърже с машина през определен порт, но тази програма също така ще оцени дали е възникнала грешка или някакво усложнение по време на процеса на свързване, с това можем да действаме усърдно и да не чакаме фатален провал Нека разгледаме кода за този пример:
import java.net.Socket; import java.net.UnknownHostException; import java.net.NoRouteToHostException; import java.net.ConnectException; публичен клас ConnectionTest {public static void main (String [] argv) {String server = argv.length = = 1? argv [0]: "localhost"; int порт = 80; try (Socket sock = new Socket (server, port)) {System.out.println ("- Успешна връзка с:" + server + "-"); } catch (UnknownHostException e) {System.err.println (сървър + "Неизвестен сървър"); връщане; } catch (NoRouteToHostException e) {System.err.println (сървър + "Извън обхвата"); връщане; } catch (ConnectException e) {System.err.println (сървър + "Връзката е отказана"); връщане; } catch (java.io.IOException e) {System.err.println (server + '' + e.getMessage ()); връщане; }}}Започваме с импортиране на пакета java.net.Socket с това ще имаме класа Гнездо който е този, който ще използваме по -късно за установяване на връзката, ако не му предадем аргумент при изпълнение на програмата, той ще се свърже директно с нашия компютър, в този случай посочваме порт 80, но може да е друг.
Поставяме създаването на екземпляра Гнездо в блок опитай да хванеш това ни позволява да оценим изключенията, ако връзката не е успешна, вместо да прекратим внезапно програмата. Накрая имаме различни блокове за улов, всеки с различно изключение, за да ни даде представа какво се е объркало.
За да работят изключенията, видяхме, че в началото импортирахме пакета java.net които ще използваме в този пример, сега нека видим как изглежда всичко това, когато изпълняваме нашата програма. Когато изпълняваме нашата програма, нека видим на следващото изображение как успяхме успешно да осъществим достъп до нашия рутер Wifi и нашите localhost:
Клиент за REST услуга
В този пример ще създадем малък клиент на уеб услуга, който ще се свърже със сървър ПОЧИВКА, за това имаме нужда само от сървър, който може да ни даде отговор на метода ПОЛУЧАВАЙТЕ на HTTP, затова можем да използваме freegeoip.net, който в зависимост от това какво предаваме през URL адреса, може да върне a JSON с данни от всяка уеб страница, която искаме.
Нека да видим кода, който сме направили:
import java.net.URL; import java.net.URLConnection; import java.io.BufferedReader; import java.io.InputStreamReader; публичен клас ClientRest {public static void main (String [] args) хвърля Exception {URLConnection conn = new URL ("http://freegeoip.net/json/www.espnf1.com") .openConnection (); try (BufferedReader is = new BufferedReader (new InputStreamReader (conn.getInputStream ()))) {String line; while ((ред = is.readLine ())! = null) {System.out.println (ред); }}}}Първото нещо, което правим, е да импортираме класовете URL адрес Y URLConnection, те ни позволяват първо да преобразуваме низ в URL, който може да бъде интерпретиран от Java и второ, направете правилната връзка. След това импортираме две библиотеки на класове, които ни позволяват да манипулираме данните, които ще получим като отговор от уеб услугата.
Накрая осъществяваме връзката си с уеб услугата на freegeoip.netВ този случай ние му предаваме всяка страница, за която знаем, че съществува, по този начин можем да получим някакъв резултат, след това съхраняваме отговора в буфер и след това го четем и го предаваме на String обект, накрая отпечатваме съдържанието и ние ще получи нещо подобно на това, което виждаме на следното изображение:
Увеличете
Разбира се, това е прост подход, за да можете да разберете как работят уеб услугите, тъй като не обхваща изпращането на параметри от нашия клиент, но за това те могат да бъдат документирани на Apache HttpClient, които могат да ви дадат превъзходни инструменти по отношение на потреблението на този тип уеб услуги, които оставяме като задача.
С това завършихме този урок, изградихме няколко програми, които ни помагат да стигнем до правилния път, за да можем да овладеем Уеб услугиС това вече виждаме как умът ни със сигурност ще започне да си представя най -доброто използване на тези инструменти в нашите приложения и по този начин ще направи нещата много по -големи.
Хареса ли ви и помогнахте на този урок?Можете да възнаградите автора, като натиснете този бутон, за да му дадете положителна точка