Android Programlama - .net Web Service Kullanımı

Başlatan Fuul oyun, 12 Nisan 2016, 03:42:11

« önceki - sonraki »

0 Üyeler ve 1 Ziyaretçi konuyu incelemekte.


                        
Web servisler işimizi kolaylaştırmak için hazır bulunan ya da kendi isteklerimize göre oluşturduğumuz yapılardır. Android üzerinde .net platformunda oluşturulmuş web servisleri kullanmak için ksoap2 kütüphanesini kullanmamız gerekiyor. Fazla uzatmadan konuya girelim.
   
   indirmeniz gereken bir adet .jar dosyası var.
   
   Link : Linklerin Görülmesine İzin Verilmiyor Üye ol Veya Giriş Yap
   
   Zip içinden çıkan .jar dosyasını proje dosyalarınızın olduğu klasörde sırasıyla "projeniz>libs" klasörüne kopyalıyoruz. Bu işlemden sonra Eclipse içinden projenizi refresh edebilir ya da Eclipse i kapatıp tekrar açabilirsiniz.
   
   Gerekli kütüphanemizi ekledik. Şimdi Web Servis ile nasıl iletişim kuracağız ona bakalım.
   
   ksoap2 ye ait gerekli import işlemlerini yapalım.
   
   
[Seç][/url]import org.ksoap2.SoapEnvelope;
   import org.ksoap2.serialization.PropertyInfo;
   import org.ksoap2.serialization.SoapObject;
   import org.ksoap2.serialization.SoapSerializationEnvelope;
   import org.ksoap2.transport.HttpTransportSE;
   Daha sonra web servisimize ait bazı bilgileri Activitymiz içindeki değişkenlere atıyoruz.
   
       
[Seç][/url]private static final String NAMESPACE = "Linklerin Görülmesine İzin Verilmiyor Üye ol Veya Giriş Yap";   
      private static final String URL = "http://WebServiceURLmiz.asmx";
       private static final String METHOD_NAME = "Web Servis içindeki kullanacağımız method ismi";
       private static final String SOAP_ACTION = "NAMESPACE+METHOD_NAME"; // örnek: http://deneme/webservice.asmx/kullanılacak_method
   Bir tane liste tanımlayacağım ki web service den dönen sonuçları liste içine atalım ve uygulamamızda kullanalım.
   
   
[Seç][/url]private String[] Liste;
   
[Seç][/url]private void denemeWebService(){
      SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME); // istek oluşturuyoruz
       SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
       envelope.dotNet = true;   // .net servisi olduğunu belirtiyoruz   
       envelope.setOutputSoapObject(request);
       HttpTransportSE androidHttpTransport = new HttpTransportSE(URL); // web servis urlmizi veriyoruz
       androidHttpTransport.debug = true;
       
      try {
          
      Linklerin Görülmesine İzin Verilmiyor Üye ol Veya Giriş Yap(SOAP_ACTION, envelope); //web servisi çağırdık
      SoapObject response = (SoapObject) envelope.getResponse(); //web service den gelecek sonuçları kullanmak için obje yarattık
      Liste = new String[response.getPropertyCount()]; // Listemizin countını web serviceden kaç tane sonuç dönecekse o kadar veriyoruz
   
      for(int i=0;i<response.getPropertyCount();i++){ //for ile gelen sonuçların içinde geziyoruz    
            Liste = response.getPropertyAsString(i).toString().trim();    //Sırasıyla string cinsinden gelen sonuçları listeye atıyoruz.
      }  
   }
       catch (Exception e) {       
          e.printStackTrace();
      }    
      }
   Web Service bağlantı fonksiyonumuz hazır. Yalnız bunu direk web servisi kullanacağımız yerde çağırarak kullanamıyoruz. Uzun sürecek bir işlem olduğu için "Kapatmaya zorla" hatası verecektir. Daha önce bahsettiğim AsyncTask yapısı içinde bu fonksiyonun çağırılması gerekli. AsyncTask nedir diyenler için ;
   
   Link : Linklerin Görülmesine İzin Verilmiyor Üye ol Veya Giriş Yap
   
   Yazıyı incelediyseniz AsyncTask yapısında doInBackground() kısmında fonksiyonumuzu çağırmamız gerekiyor.
   
   
[Seç][/url]public class denemeAsyncTask extends AsyncTask<String[],String[],String[]>{
   
           private ProgressDialog dialog = new ProgressDialog(this); // kullanıcıyı işlem sonuçlanana kadar bilgilendirmek için progress dialog oluşturuyoruz
         
         @Override
          protected void onPreExecute() {
             dialog.setMessage("Yükleniyor..."); // Yükleniyor mesajı veriyoruz
             Linklerin Görülmesine İzin Verilmiyor Üye ol Veya Giriş Yap();
          }
         @Override
         protected String[] doInBackground(String[]... params) {
            denemeWebService(); // fonksiyonu çağırdık. İşlem yapılıyor.
            return Liste;
         }
         
         
         protected void onPostExecute(String[] Liste){
               // web servis işini bitirdi listeyi doldurdu.
            // listeyi ana thread de ne için kullanacaksak o işlemler burada yapılır.
               dialog.dismiss(); //en son olarak kullanıcıyı bilgilendirdiğimiz dialogu sonlandırıyoruz.
         }
      }
   Son olarak web servisimizi nerede kullanacaksak orada AsyncTask'ımızı çalıştırıyoruz.
   
   İşlem bu kadar
   
   Bu örnekte anlatılanlar parametre istemeyen web servis methodları için geçerlidir.
   
   Parametre isteyen web servis methodları için fonksiyonumuza küçük bir ekleme yapacağız.
   
   
[Seç][/url]private void denemeWebService(String Param1,String Param2){
   
         PropertyInfo parametre1 = new PropertyInfo();
         Linklerin Görülmesine İzin Verilmiyor Üye ol Veya Giriş Yap= "name1"; // web service methodunun aldığı parametre adı ile aynı olmak zorunda.
         parametre1.setValue(Param1);
         parametre1.type = PropertyInfo.STRING_CLASS;
         
         PropertyInfo parametre2 = new PropertyInfo();
         Linklerin Görülmesine İzin Verilmiyor Üye ol Veya Giriş Yap= "name2"; // web service methodunun aldığı parametre adı ile aynı olmak zorunda.
         parametre2.setValue(Param2);
         parametre2.type = PropertyInfo.STRING_CLASS;
         
         SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME);
         request.addProperty(parametre1);
         request.addProperty(parametre2);
         
       SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
       envelope.bodyOut=request;
       envelope.dotNet = true;   
       envelope.setOutputSoapObject(request);
       
       HttpTransportSE androidHttpTransport = new HttpTransportSE(URL);
       androidHttpTransport.debug = true;
       
      try {
          
      Linklerin Görülmesine İzin Verilmiyor Üye ol Veya Giriş Yap(SOAP_ACTION, envelope);
      SoapObject response = (SoapObject) envelope.getResponse();
      Liste = new String[response.getPropertyCount()];
   
      for(int i=0;i<response.getPropertyCount();i++){     
            Liste = response.getPropertyAsString(i).toString().trim();   
      }  
   }
       catch (Exception e) {       
          e.printStackTrace();
      }
         
      }
   AsyncTask içinde fonksiyonumuzu çağırırken parametreleri göndermeyi unutmuyoruz
   
   İşlem tamamdır kolay gelsin
   
   Kaynak: Linklerin Görülmesine İzin Verilmiyor Üye ol Veya Giriş Yap
                     
                  
                  

Linkback: Android Programlama - .net Web Service Kullanımı
  • Gösterim 1,420 
  • Android Eğitim
  • 0 Yanıtlar




Paylaş whatsappPaylaş facebookPaylaş linkedinPaylaş twitterPaylaş myspacePaylaş redditPaylaş diggPaylaş stumblePaylaş technoratiPaylaş delicious

Benzer Konular (5)


İçerik sağlayıcı paylaşım sitesi olarak hizmet veren Replikacep.com sitemizde 5651 sayılı kanunun 8. maddesine ve T.C.Knın 125. maddesine göre tüm üyelerimiz yaptıkları paylaşımlardan kendileri sorumludur.Replikacep.com hakkında yapılacak tüm hukuksal şikayetleri İletişim sayfamızdan bize bildirdikten en geç 3 (üç) iş günü içerisinde ilgili kanunlar ve yönetmelikler çerçevesinde tarafımızca incelenerek gereken işlemler yapılacak ve site yöneticilerimiz tarafından bilgi verilecektir.
Footer menü
Hakkımızda
Bize Ulaşın
Biz Kimiz
Hizmetlerimiz