Obsługa usług internetowych to praktycznie podstawa w przypadku aplikacji mobilnych. Pozwalają nam w znaczy sposób zwiększyć atrakcyjność aplikacji. Usługa internetowa to idealna forma komunikacji z chmurą lub innym aplikacjami.
Warto wiedzieć jak korzystać z takiego API w kodzie. Chciałbym zaprezentować sposoby implementacji różnych zapytań HTTP zaczynając na GET i kończąc na PATCH. Pokaże jak manipulować zapytaniami http tak abyśmy mieli pełnie władzy nad usługą.
Metody HTTP
Opisz krótko 5 metod z których korzysta się najczęściej w usługach internetowych
- GET – pobieranie danych z serwera
- POST – wysłanie danych na serwer np. wstawienie nowego rekordu do bazy danych
- DELETE – usuniecie danych z serwera
- PUT – zaktualizowanie danych na serwerze. Przesłanie całej zmodyfikowanej struktury
- PATCH – zaktualizowanie danych na serwerze. Różnica do PUT polega na tym, że w przypadku PATCH nie musimy przesyłać całej struktury danych a jedynie elementy które uległy modyfikacji
Oczywiście nie każdy WebService korzysta dla każdego rodzaju operacji z odpowiedniej metody HTTP. RESTFul jest standardem który definiuje właśnie wykorzystanie tych 5 metod zgodnie z ich przeznaczeniem. W sieci nie ma zbyt dużo RESTful’owych usług, większość z nich operuje głównie na metodzie GET przykładem może być serwis Bit.ly i nim zajmiemy się na początku.
Na początek skorzystamy z konwentera JSON to C# class: http://json2csharp.com/
W celu wygenerować struktury danych na którą będziemy mapowali JSON’a otrzymanego w wyniku zapytania HTTP. Wygląda to mniej więcej tak:
public class LinkSave { public string link { get; set; } public string aggregate_link { get; set; } public string long_url { get; set; } public int new_link { get; set; } } public class Data { public LinkSave link_save { get; set; } } public class RootObject { public int status_code { get; set; } public Data data { get; set; } public string status_txt { get; set; } }
Kolejnym etapem jest utworzenie nowej instancji obiektu HttpClient(); jeżeli nie jest dostępny można znaleźć go i doinstalować w NuGet.
Metoda z której będziemy korzystali to GetStringAsync() spowoduje, że zwróci nam wszystko to co wyśle do nas serwer w postaci tekstu. Jeżeli dobrze odpytamy serwer to w odpowiedzi dostaniemy stringa z JSONem. Korzystając z jsonConventer jesteśmy wstanie deserializować dane i z mapować na obiekty, które przed chwilą wygenerowaliśmy.
const string access_token = "your_app_token"; string title_url = "Sebcza.pl - Sebastian Czarnecki"; string long_url = "https://sebcza.pl"; string url = "https://api-ssl.bitly.com/v3/user/link_save?access_token="+access_token+"&title="+title_url+"&longUrl="+long_url; var client = new HttpClient(); var result = await client.GetStringAsync(url); var json = JsonConvert.DeserializeObject<data>(result); var ResultShorLink = json.link_save.link;

Software Developer | .NET and Angular enthusiast | 3D Printing fanatic