Android ile SOAP Web servis kullanımı

Android ile soap web servislerini kullanmak için ksoap kütüphanesini kullanacağınız. Bu kütüphaneyi buradaki bağlantıdan indirebilirsiniz. Kaynak kodlara aşağıdan erişebilirsiniz. Öncelikle yapmanız gereken manifest dosyasına internet erişim iznini eklemek olmalıdır.  Konu daha detaylı olarak video’da anlatılmaktadır.

 

ServiceManager  Sınıfı

package com.mesutpiskin.soaptest;

import org.ksoap2.SoapEnvelope;
import org.ksoap2.serialization.SoapObject;
import org.ksoap2.serialization.SoapPrimitive;
import org.ksoap2.serialization.SoapSerializationEnvelope;
import org.ksoap2.transport.HttpTransportSE;

/**
 * Created by mesutpiskin on 15.03.2016.
 */
public class ServiceManager {
    private static final String METHOD_NAME = "PushSMS";
    private static final String NAMESPACE = "http://tempuri.org/";
    private static final String SOAP_ACTION = "http://tempuri.org/PushSMS";
    private static final String URL = "http://192.168.1.7:4247/Service.asmx";

    SoapObject soapObject;
    SoapSerializationEnvelope soapSerializationEnvelope;
    HttpTransportSE httpTransportSE;

    public void PushData(String numara, String veri,String appKey) {

        soapObject = new SoapObject(NAMESPACE, METHOD_NAME);
        soapObject.addProperty("PHONENUMBER", numara);
        soapObject.addProperty("DATA", veri);
        soapObject.addProperty("KEY", appKey);

        soapSerializationEnvelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
        soapSerializationEnvelope.dotNet = true;
        soapSerializationEnvelope.setOutputSoapObject(soapObject);

        httpTransportSE = new HttpTransportSE(URL);
        httpTransportSE.debug = true;
        try {
            httpTransportSE.call(SOAP_ACTION, soapSerializationEnvelope);
            SoapPrimitive soapPrimitive=(SoapPrimitive)soapSerializationEnvelope.getResponse();
            System.out.println(soapPrimitive.toString());
        } catch (Exception ex) {
            ex.printStackTrace();
        }
    }

}

Manifest

<uses-permission android:name="android.permission.INTERNET" />

Mainactivity

(Xml tarafında bir adet buton var bu buton CallWebservice() metodunu çağırmaktadır.)

package com.mesutpiskin.soaptest;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;

public class MainActivity extends AppCompatActivity {

    ServiceManager serviceManager;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        serviceManager=new ServiceManager();
    }


    public  void CallWebservice(View view)
    {
        Thread thread=new Thread(new Runnable() {
            @Override
            public void run() {
                serviceManager.PushData("54554","awdawed","5465");
            }
        });

        thread.start();

    }

}