public static final String NAMESPACE="http://tempuri.org/"; public static final String SOAP_ACTION="http://tempuri.org/IsAuthenticated"; public static final String URL="http://localhost/HealthyNutrition/UserBusiness.asmx"; public static final String METHOD_NAME="IsAuthenticated";
Öncelikle SOAP protokolü üzerinden haberleşeceğimiz değişkenleri tanımlamamız gerekiyor.
![]() |
Şekil 1 -URL |
![]() |
Şekil 2 -SOAP ACTION |
Android SOAP protokolü ile haberleşmeyi ana thread içerisinde yapılmasına izin vermiyor.Dolayısıyla haberleşmeyi yapmak için thread kullanımı gerekiyor.Bu aşamada dağıtık sistemler dersinde yaptığımız uygulamalardaki bilgilerimi kullandım.
Thread nt=new Thread(){ //Android ana thread üzerinden web servise bağlanmaya izin vermiyor. // o yüzden yeni thread tanımlayıp onun üzerinden bağşantı işlemleri yapılır. public void run(){ //Thread ile ilgili işlemler run fonksiyonunu override ederek yapılır SoapObject request=new SoapObject(NAMESPACE,METHOD_NAME); //Namespace ve method ismi ile ilgili web servise bağlantıyı sağlar request.addProperty("email",email.getText().toString()); //web serviste calısan fonksiyona gönderilecek parametreler belirlenir.Parametrelerin isimleri web serviste çalışan fonksiyonların aldığı parametrelerle aynı olmak zorunda request.addProperty("password",password.getText().toString()); SoapSerializationEnvelope envelope=new SoapSerializationEnvelope(SoapEnvelope.VER11); envelope.dotNet=true; // envelope.setOutputSoapObject(request); HttpTransportSE transport=new HttpTransportSE(URL); try { transport.call(SOAP_ACTION, envelope); SoapPrimitive result=(SoapPrimitive) envelope.getResponse(); //Web servisten cevabı alır. loginStatus=Boolean.parseBoolean(result.toString()); if(loginStatus) { intent= new Intent(Main.this,NewsFeed.class); startActivity(intent); control=true; } } catch (HttpResponseException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (XmlPullParserException e) { // TODO Auto-generated catch block e.printStackTrace(); } runOnUiThread(new Runnable() { //Thread ile işlem yapıldığı için ekrana yazı yazdırmak için kullanılır. @Override public void run() { // TODO Auto-generated method stub if(control == false) Toast.makeText(Main.this, "Sistemde böyle bir kayıt bulunamadı.Lütfen aşağıdaki linke tıklayarak üye olunuz", Toast.LENGTH_LONG).show(); } }); } }; nt.start();
Web Servis üzerinde çalışan IsAuthenticated fonksiyonu ile veri alışverişi yapılması bu şekilde yapılmaktadır.
Hiç yorum yok:
Yorum Gönder