SOAP(Simple Object Access Protocol), web üzerinden önceden yazılmış fonksiyonları kullanabilmek için geliştirilmiş XML tabanlı kurallar bütünüdür. Diğer bir deyişle web servisi ve onu kullanan istemci arasında ilişkiyi belli standartlara dayandırır. Bu standartları da HTTP protokolü sayesinde gerçekleşir.
Bir web servisi yazarken elimizdeki XML datayı üç şekilde tanımlayabiliriz. Burada bu yöntemlerin kullanımını incelediğimiz için önceden yazılmış web servislerini kullanmak daha pratik olur. Buradaki sitedeki bir web servisi kullanılabilir. Currency Convertor servisi üzerinden anlatabiliriz.
1. SOAP
Genel gösterimi şu şekildedir:
"" "http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">" "<soap:body%gt;"< p=""> "<conversionrate "="" http:="" www.webservicex.net="" xmlns="<a href=">http://www.webserviceX.NET/">" "USD" "TRY" "" ""
“” Burada ki “<” ve “>” işaretleri tırnak işaretinden dolayı problem çıkarabilir. Bu yüzden “<” yerine < , “>” yerine de > ifadesi kullanılabilir. Datayı oluşturduktan sonra Web Service URL’i ve onu talep eden(request) bildirimleri oluşturabiliriz.
NSURL *url = [NSURLURLWithString:@"http://www.webservicex.net/CurrencyConvertor.asmx?WSDL"]; NSMutableURLRequest *theRequest = [NSMutableURLRequest requestWithURL:url]; NSString *length = [NSString stringWithFormat:@"%d",[soapMessage length]]; [theRequest addValue:@"application/x-www-form-urlencoded"forHTTPHeaderField:@"Content-Type"]; [theRequest addValue:@"http://www.webserviceX.NET/ConversionRate"forHTTPHeaderField:@"SOAPAction"]; [theRequest addValue:length forHTTPHeaderField:@"Content-Length"]; [theRequest setHTTPMethod:@"POST"]; [theRequest setHTTPBody:[soapMessage dataUsingEncoding:NSUTF8StringEncoding]];
Burada kullanılan bilgiler XML mesajının içinde yazılıdır. Ayrıca bu kısım HTTP POST ve HTTP GET için de aynıdır. Sadece yazılacak bilgiler değişir. Bu yazılan iki kısımla web servisiyle bağlantı kurmak için gerekli ortam sağlanmış oldu.
2. HTTP POST
Bir diğer tanım türü de HTTP POST kullanmaktır.
FromCurrency=%@&ToCurrency=%@”,c1.text,c2.text ifadesi ile c1 ve c2 adlı metin kutularına yazılan bilgi alınmış olur.
3. HTTP GET
GET /CurrencyConvertor.asmx/ConversionRate?FromCurrency=string&ToCurrency=string Burada GET ve POST metotlarının standart hali görülmektedir.