Soru & Cevap

androrid uygulamasına web servisten veri cekmek

25.08.2014 - 11:22

web servisle olusturdugum metod yardımıyla veri tabanındaki personel tablomdan personel ıd si vererek isim, soyisim, tcno  cekmeye calısıyorum ama gelen dataset veriyi bir turlu parcalayamıyorum surekli null cevabı geliyor bu sorunu nasıl halledebilirim? ksoap 2 kütüphanesini kullanarak yapmaya calısıyorum

21 Görüntülenme

5 Cevap

Sitedeki sorulara cevap verebilmek için giriş yapın ya da üye olun.

Profile picture for user dilbirinorhan47
dilbirinorhan47
26.08.2014 - 04:02

package com.example.donusum;

import java.io.IOException;

import org.ksoap2.SoapEnvelope;
import org.ksoap2.SoapFault;
import org.ksoap2.serialization.PropertyInfo;
import org.ksoap2.serialization.SoapObject;
import org.ksoap2.serialization.SoapPrimitive;
import org.ksoap2.serialization.SoapSerializationEnvelope;
import org.ksoap2.transport.HttpTransportSE;
import org.xmlpull.v1.XmlPullParserException;

import android.support.v7.app.ActionBarActivity;
import android.app.ProgressDialog;
import android.os.AsyncTask;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;

public class MainActivity extends ActionBarActivity {
      private final String NAMESPACE="http://tempuri.org/";
            private final String SOAP_ACTION="http://tempuri.org/TabloAdi3";
            private final String METHOD_NAME="TabloAdi3";
            private final String URL="http://secmesikolay.com/Service1.asmx";
    
  protected void onCreate(Bundle savedInstanceState)
  {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_main);
   
      Button btnVesselSearch = (Button)findViewById(R.id.btnInvoke);
      btnVesselSearch.setOnClickListener(getVessel);
  }
   
  private OnClickListener getVessel = new OnClickListener()
  {
      @Override
      public void onClick(View v)
      {
        final  TextView     tv = (TextView)findViewById(R.id.tv1);
                    
          new bnm().execute(); 
      }
  };
    private class bnm extends AsyncTask<String, Void, SoapObject> {
        private final String NAMESPACE="http://tempuri.org/";
        private final String SOAP_ACTION="http://tempuri.org/TabloAdi3";        
        private final String  METHOD_NAME="TabloAdi3";
        private final String URL="http://secmesikolay.com/Service1.asmx";
         
      

        protected void onPreExecute() {


        }


        protected SoapObject doInBackground(String... queryParams) {


        // POST ETTİĞİM VERİLER BANA GERİYE SOAPOBJECT DÖNÜYOR
            try {


                SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME);
                request.addProperty("ProductID","2" );

                PropertyInfo ProductName = new PropertyInfo();
                ProductName.setName("_ProductName");
               
                ProductName.setType(String.class);
                request.addProperty(ProductName);


                PropertyInfo CategoryName = new PropertyInfo();
                CategoryName.setName("_CategoryName");
                
                CategoryName.setType(String.class);
                request.addProperty(CategoryName);
           

                    PropertyInfo UnitPrice = new PropertyInfo();
                    CategoryName.setName("_UnitPrice");
                    
                    UnitPrice.setType(String.class);
                    request.addProperty(UnitPrice);

                SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(
                        SoapEnvelope.VER11);
                envelope.dotNet = true;
                envelope.setOutputSoapObject(request);
                HttpTransportSE androidHttpTransport = new HttpTransportSE(URL);


                androidHttpTransport.call(SOAP_ACTION, envelope);


                SoapObject response = (SoapObject) envelope.bodyIn;


                return response;
            }


            catch (Exception e) {
                e.printStackTrace();


                return null;


            }
        }

 

        protected void onPostExecute(SoapObject response) {
            // DÖNEN DEĞER SOAPOBJECT RESPONSE

 

                try {
                if (response != null) {
                    SoapPrimitive ProductName = (SoapPrimitive) response
                                .getProperty("ProductName");
                    final  TextView     tv = (TextView)findViewById(R.id.tv1);
                    tv.setText("ProductName"+ProductName+"");
                }
                } catch (Exception e) {
                    // TODO: handle exception


                }


            }


        }


    }

Dilbirin Orhan
26.08.2014 - 04:03
bu sekilde düzenledim bir yanlıslık mı var acaba Görkem bey?
picture-12265-1397142254.jpg
gkaradagan
26.08.2014 - 02:28

[code]

private class haberlerAsync extends AsyncTask<String, Void, SoapObject> {

        final String NAMESPACE = ana.getApplicationContext().getResources()
                .getString(R.string.NAMESPACE);
        final String URL = ana.getApplicationContext().getResources()
                .getString(R.string.URL);
        String SOAP_ACTION = "http://tempuri.org/";
        String METHOD_NAME = "";

        protected void onPreExecute() {

        }

        protected SoapObject doInBackground(String... queryParams) {

        // POST ETTİĞİM VERİLER BANA GERİYE SOAPOBJECT DÖNÜYOR
            try {
                SOAP_ACTION = ana.getApplicationContext().getResources()
                        .getString(R.string.haberSoapAction);
                METHOD_NAME = "GetHaber";

                SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME);

                PropertyInfo username = new PropertyInfo();
                username.setName("_Username");
                username.setValue(_Username);
                username.setType(String.class);
                request.addProperty(username);

                PropertyInfo password = new PropertyInfo();
                password.setName("_Password");
                password.setValue(_Password);
                password.setType(String.class);
                request.addProperty(password);
                if (METHOD_NAME == "GetHaber") {
                    PropertyInfo from = new PropertyInfo();
                    from.setName("from");
                    from.setValue(haberlerFrom);
                    from.setType(integer.class);
                    request.addProperty(from);

                    PropertyInfo to = new PropertyInfo();
                    to.setName("to");
                    to.setValue(haberlerTo);
                    to.setType(integer.class);
                    request.addProperty(to);

                    PropertyInfo sadeceTelNoSuOlan = new PropertyInfo();
                    sadeceTelNoSuOlan.setName("removeHtml");
                    sadeceTelNoSuOlan.setValue(true);
                    sadeceTelNoSuOlan.setType(Boolean.class);
                    request.addProperty(sadeceTelNoSuOlan);
                }

                SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(
                        SoapEnvelope.VER11);
                envelope.dotNet = true;
                envelope.setOutputSoapObject(request);
                HttpTransportSE androidHttpTransport = new HttpTransportSE(URL);

                androidHttpTransport.call(SOAP_ACTION, envelope);

                SoapObject response = (SoapObject) envelope.bodyIn;

                return response;
            }

            catch (Exception e) {
                e.printStackTrace();

                return null;

            }
        }


        protected void onPostExecute(SoapObject response) {
            // DÖNEN DEĞER SOAPOBJECT RESPONSE
            
            
                
                try {
                if (response != null) {
                    SoapPrimitive ProductName = (SoapPrimitive) response
                                .getProperty("ProductName");
                }
                } catch (Exception e) {
                    // TODO: handle exception

                }

            }

        }

    }

[/code]

 

 

Ben örnek bir kod paylaştım doinbackground ellemedim kendımınkı nasılsa oyle bıraktım senın bılgılerını bılmedıgım ıcın kendıne göre duzenlersın. dönen değer saopobject ve sen buradakı bilgileri okuyabilmek ıcın soapprimitive cevırmek zorundasın onPostExecute Sana Göre gosterdim

Dilbirin Orhan
26.08.2014 - 02:56
şimdi ben burda sadece doinbackground mu kendime gore düzenleyecegim
Dilbirin Orhan
26.08.2014 - 02:58
baslangıctaki ana nerden geliyor
Gorkem Karadogan
26.08.2014 - 03:06
ana kısmı benım kullandıgım bir context siz o kısmı sılınız doinbackground kımını kendınıze göre duzenleyın
Dilbirin Orhan
26.08.2014 - 04:00
Görkem Bey ben doinbackground kısmını kendime gore düzenledim program calısıyor ama herhengibir sonuc alamıyorum nden kaynaklanıyor olabilir acaba?
Profile picture for user dilbirinorhan47
dilbirinorhan47
26.08.2014 - 09:37

id numarasına gore cagrı yapmak istiyorum web servis cıkısı bu.

/sites/default/files/cevaplar/dosya/2020/file-123_0.jpg
Profile picture for user dilbirinorhan47
dilbirinorhan47
25.08.2014 - 04:39

istediginiz bu mu?

/sites/default/files/cevaplar/dosya/2020/file-a_0.jpg
Gorkem Karadogan
26.08.2014 - 09:10
evet ama bu bozuk bır sekılde. Webservisten size dönen değere bakmak istiyorum ona göre bır kod yazabılırım sıze.
Dilbirin Orhan
26.08.2014 - 10:54
https://gelecegiyazanlar.turkcell.com.tr/sites/default/files/123_0.jpg id numarasına gore cagrı yapmak istiyorum web servis cıkısı bu.
picture-12265-1397142254.jpg
gkaradagan
25.08.2014 - 03:33

Size döner response kontrol edermisiniz eğer o null geliyorsa webservise'nizde problem vardır. Eğer oradan veri geliyorsa buraya bir koyun ben belli bir kısmı anlamanız ıcın gösterimini yapıyım.

Dilbirin Orhan
25.08.2014 - 03:44
package com.example.app_b; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import org.json.JSONException; import org.json.JSONObject; import org.ksoap2.SoapEnvelope; import org.ksoap2.serialization.SoapObject; import org.ksoap2.serialization.SoapPrimitive; import org.ksoap2.serialization.SoapSerializationEnvelope; import org.ksoap2.transport.AndroidHttpTransport; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.EditText; import android.widget.TextView; import android.widget.Toast; public class MainActivity extends Activity { private final String NAMESPACE="http://tempuri.org/"; private final String SOAP_ACTION="http://tempuri.org/TabloAdi3"; private final String METHOD_NAME="TabloAdi3"; private final String URL="http://secmesikolay.com/Service1.asmx"; Button bSorgula; EditText et ; TextView tv,tv2,tv3; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Button hesapla=(Button)findViewById(R.id.bSorgula); hesapla.setOnClickListener(Hupdate); } private OnClickListener Hupdate=new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub tv = (TextView) findViewById(R.id.textView1); //et = (EditText) findViewById(R.id.etID); SoapObject Request=new SoapObject(NAMESPACE,METHOD_NAME); Request.addProperty("ProductID","2" ); SoapSerializationEnvelope sse=new SoapSerializationEnvelope(SoapEnvelope.VER11); sse.dotNet=true; sse.setOutputSoapObject(Request); AndroidHttpTransport ath = new AndroidHttpTransport(URL); try{ ath.call(SOAP_ACTION, sse); SoapPrimitive resultString=(SoapPrimitive)sse.getResponse(); tv.setText(""+resultString+"dir"); } catch(Exception e){ tv.setText(e.getMessage()); } } }; } bu sekile dönüstürdüm en son ama simdi de sadece gelen verinin ilkini yalnız alıyor
Gorkem Karadogan
25.08.2014 - 04:13
resultString bunu atarmısınız