SOAP(Simple Object Access Protocol) Nedir ?

SOAP, XML tabanlı uygulamalarda HTTP üzerinden bilgi değişimine izin veren protokoldür. Basitçe SOAP, Web Servis erişimi için protokoldür.
SOAP, mesaj göndermek için bir formattır.
SOAP, Internet üzerinden iletişim kurmak amacıyla tasarlanmıştır.
SOAP, platformdan ve programlama dilinden bağımsızdır.
SOAP, firewall(güvenlik duvarına) gelebilmeye izin verir.
SOAP W3C standardıdır.

C# ile xml request ve response(Soap)

string WSUrl = "http://sdp.test.com.tr/proxy/external"; //Servis Adresiminiz
string soap = "<s:Envelope xmlns:s=\"http://schemas.xmlsoap.org/soap/envelope/\"><s:Header><h:token xmlns:h=\"http://sdp.test.com.tr/mapping/generated\" xmlns=\"http://sdp.test.com.tr/mapping/generated\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\">" +
"<sessionId>" + sessionId + "</sessionId></h:token>" +
"</s:Header><s:Body xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\"><TestInput xmlns=\"http://sdp.test.com.tr/mapping/generated\">" +
"<REFERANS_ID>referansID</REFERANS_ID>" +
"<REQUEST_TIME>2014-12-18 09:11:59.931</REQUEST_TIME>" +
"<DELIVERY_CHANNEL>ECDS</DELIVERY_CHANNEL>" +
"</TestInput></s:Body></s:Envelope>";

WebRequest req = WebRequest.Create(WSUrl);
req.Credentials = System.Net.CredentialCache.DefaultCredentials;
req.Headers.Add(String.Format("SOAPAction:{0}", "http://sdp.test.com.tr/services/action/test")); //Action adresiminz
req.ContentType = "text/xml;charset=\"utf-8\"";
req.Method = "POST";
Stream stm = req.GetRequestStream();
using (StreamWriter stmw = new StreamWriter(stm))
{
    stmw.Write(soap);
}

string responseString = "";
using (WebResponse response = req.GetResponse())
{
Stream responseStream = response.GetResponseStream();
using (StreamReader reader = new StreamReader(responseStream))
{
    responseString = reader.ReadToEnd();
}
}

#region Debit - Response işlemi

if (!String.IsNullOrEmpty(responseString))
{
    XmlDocument document = new XmlDocument();
    document.LoadXml(responseString);
    XmlNamespaceManager manager = new XmlNamespaceManager(document.NameTable);
    manager.AddNamespace("sdp", "http://sdp.test.com.tr/mapping/generated");
    manager.AddNamespace("so", "so:http://sdp.test.com/mapping/TSO");
    XmlNodeList xnList = document.SelectNodes("//sdp:RefId_DirectDebitOutput", manager);

   foreach (XmlNode xn in xnList)
   {
       var getTSOresult = xn["so:TSOresult"]; //Dönen değerleri alabiliriz.
   }
}

#endregion