© 2013 All rights reserved.
1

Vývoj aplikací pro iPhone: Send data to a Web server

Často potřebujeme aby naše aplikace komunikovala s webovým serverem. Budeme tak muset danému serveru posílat data z naší aplikace.

Odeslání lidovolných dat můžeme rozdělit na dvě části – samotné odeslání (příprava dat a jejich poslání) a zpracování odpovědi.

Odeslání požadavku

Pro poslání dat si vytvoříme nový NSMutableURLRequest, ve kterém si inicializujeme adresu, jež se bude volat a na kterou budeme data předávat:

Tím máme vytvořenou pouze prázdnou proměnnou, se kterou můžeme dále pracovat.

Nejprve nastavíme metodu pro poslání dat. Můžete si vybrat libovolně například POST:

Requestu můžeme nastavit hlavičky pro poslání:

Tím máme request vytvořen a přidáme do něj data, která se budou posílat.

Data musí být typu NSData, takže si nejprve můžeme vytvořit data jako NSString a poté je překonvertovat, pro lepší pochopení:

V request bude existovat v poli POST proměnná s názvem data, která bude obsahovat řetězec „variable“. Proměnnou request_body překonvertujeme na NSData:

Nakonec data přidáme do requestu:

V úplně posledním kroku vytvoříme connection jako NSURLConnection a předáme jí náš request:

Proměnná myConnection obsahuje výsledek requestu, se kterým můžeme dále pracovat:

Zpracování odpovědi

Pro zpracování odpovědi serveru využijeme automaticky volaný handler connectionDidFinishLoading, který se volá po dokončení požadavku:

Zpracování na straně serveru

Na straně serveru zpracujeme data klasicky, například v PHP bude na danou adresu předána proměnná $_POST[‘data’], ve které budou uloženy odesílaná data:

Závěrem

Odeslání požadavku takovýmto způsobem je vcelku jednoduchá věc. Můžete se ještě jednou podívat na celý kód:

Comments are closed for this page

Ahoj chtěl bych ti poděkovat za článek. Řeším odesílání a přijímání dat přes https. Http mám vyřešené, tam to funguje krásně, ale chtěl bych to aplikovat přes https. Nevím, jak to udělat. Nemáš nějaký fungující projekt, který by to dokázal?

Díky
S pozdravem
Tomáš

About
Hi, i am programmer from the Czech Republic. I love web development (Ruby, Ruby on Rails, PHP, Nette) and iOS development (Objective-C, Cocoa).
To cooperate, here is my phone:
+420 608 836