soap-php-web servisleri: nvi icin ornek uygulama

Saturday October 08th 2005, 01:01 am |   |  Web Teknolojileri | by eser s.

bir sure once calismasini yaptigim ornek bir uygulama. bu sefer ki ajax yerine soap, php ve pear ile web servisleri uygulamasi… nvi.gov.tr’den neredeyse hepimiz tc kimlik numaramizi sorgulamisizdir. iste bu adrese baglanmadan kendi sunucumuz uzerinden de bu sorgulamalari yapabilmemize imkan taniyan web teknolojileri: soap(Simple Object Access Protocol) ve wsdl(Web Services Description Language)
bunlarin aciklamalarina girmeden simdilik, nvi.gov.tr’den soap ve wsdl ile turkiye’nin guncel il listesini nasil cekebilecegimizi gosteren kucuk bir uygulama. malesef sunulan diger web servislerini kullanma imkanim olmadi. bazilarinda hata var bazilari ise dogru sonuc donmuyor. ornek olarak tckimlik numarasi sorguladigimizda surekli olarak hata aliyoruz veya gecersiz tckimlik numarasi diyor.. e-posta atarak durumu sordum ve bilgilendirme istedim ama henuz yanit gelmedi. bekliyorum simdilik.. iste php-soap-wsdl-pear ile hazirladigimiz kucuk ornek uygulama:

<html>
<head>
    <meta http-equiv=”Content-Type” content=”text/html; charset=UTF-8″ />    
    <title>
        NÜFUS İDARESİ - WEB SERVİSLERİ İÇİN ÖRNEK SOAP-WSDL UYGULAMASI
    </title>
</head>
<body>

<?php
    
/**
     * eser sahillioglu - shl -at- sahillioglu - net
     * sahillioglu.net - defter.sahillioglu.net
     * bu kod php ile soap kullanimina ornek olmasi icin yazildi
     * kod, tepe tepe kullanilabilir yayilabilir silinebilir kopyalanabilir
     * siz de katkida bulunayi unutmayin lutfen
     */
    
    /**
     * bu uygulama nvi.gov.tr’de sunulan soap sunucusunda sorgulama yapmak uzere hazirlanmistir.
     * url’nin sonuna ‘?wsdl’ eklenerek WSDL kullanmasini sagliyoruz..
     */

    //pear.php.net adresinden indirdigimiz SOAP paketindeki
    //client.php dosyasini include ediyoruz.
    //bu dosya bizim bir SOAP server’ina baglanip verilen hizmetler
    //cercevesinde cesitli sorgular yapabilmemizi sagliyor
    //ve donen sonucu parse edip kullanimimiza sunuyor.
    //soap paketindeki dosyalari kullanabilmek icin bunlarin php’nin
    //include_path’ine verilmis dizin altinda olmasi gerekiyor.
    
include(“SOAP/Client.php”);
    
    
    
// burada baglanacagimiz ve sorgu yapacagimiz url’yi tanimliyoruz.
    // wsdl sorgusu yapabilmek icin adresin sonunda ?wsdl ekinin olmasi gerekiyor
    
$wsdl_url = “http://tckimlik.nvi.gov.tr/kpspublic.asmx?wsdl”;
    
    
//soap_wsdl class’indan yukaridaki url’yi vererek yeni bir nesne uretiyoruz
    
$wsdl = new SOAP_WSDL($wsdl_url);
    
    
//WSDL class’inda getProxy methodunu cagiriyoruz.
    //bu method bize soap sunucusundaki webservislerin fonksiyonlarini
    //sanki local fonksiyon gibi cagirmamizi sagliyor.
    
$soapclient = $wsdl->getProxy();    
    
    
//asagida cagirdigimiz IlListesiGetir fonksiyonu aslinda nvi’nin fonksiyonu.
    //ama getProxy methodu bize bunu soapclient’in bir fonksiyonu
    //gibi cagirmamizi sagliyor.
    
    //asagidaki satirda IlListesiGetir fonksiyonunu sorgulayip donen
    //sonucu resultdata degiskenine atiyoruz.
    //nvi.gov.tr de sunulan diger web servisleri icin:
    //http://tckimlik.nvi.gov.tr/Web/WebServices.aspx adresini gezebilirsiniz.
    
$resultdata = $soapclient->IlListesiGetir();
    
    if (
PEAR::isError($resultdata)) {//donen bir hata mesaji var mi kontrol ediyoruz
        
print(“hata: ” . $resultdata->getMessage() . “<br>\n”); //donen hata varsa bunu ekrana bastiriyoruz
    
} else {//degilse
        //il listesini ekrana ne sekilde bastiracaginiz size kalmis artik :)
        //asagidaki satir ile donen verinin seklini semalini gorebilirsiniz.
        //print_r($resultdata);
        
        
echo ‘<ul>’;
        foreach (
$resultdata as $key => $value) {
            
//donen verinin obje oldugunu unutmuyoruz. bu nedenle -> ile bastiriyoruz
            
echo ‘<li>’.$value->Kod.‘ - ‘.$value->Ad.‘</li>’;    
        }
        echo
‘</ul>’;
    }
    
//ve bitirdik..
?>
</body>
</html>


Comments
3 Comments   |   Leave a comment  |  Comments RSS on this post.  |   TrackBack URI
  • Budur abicim :) opuyorum gozlerinden

    .... Comment by ali bülbül • October 9, 2005 @ 20:27 pm
  • soap ı windows server üzerinde php ile kullanmak için neler yapmamız gerektiğini yani kurulumunu açıklarsanız sevinirim. Mesela nereden indiriceğiz

    .... Comment by zafer • August 17, 2007 @ 22:36 pm
  • Zafer,
    mesaj olarak da attim ama buradan da yazayim. http://www.apachefriends.org altindaki xampp adli programi kurduktan sonra sana komple bir php apache pear mysql gelistirme ortami sagliyor. tum pear paketleri de kurulmus ve ayarlari yapilmis oldugu icin soap vb. paketleri kullanan kodlarda da sorun yasamiyorsun…
    iyi calismalar…

    .... Comment by eser s. • August 23, 2007 @ 10:51 am
  • Leave a comment

    [required]

    [required]



    Line and paragraph breaks automatic, e-mail address never displayed,
    HTML allowed: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <code> <em> <i> <strike> <strong>

    This is a captcha-picture. It is used to prevent mass-access by robots. (see: www.captcha.net)

    You must read and type the 5 chars within 0..9 and A..F, and submit the form.

      

    Oh no, I cannot read this. Please, generate a

     
    SHATO Web Hosting Services