Android'de Web Hizmeti'ni arama konusunda sorun yaşıyorsanız, web servisini aramak ve yanıt almak için aşağıdaki kodu kullanabilirsiniz. SQL Server veritabanından veri kullanıyorsanız , web hizmetinizin yanıtı Veri Tablosu Formatında döndürdüğünden emin olun. Bu kod size yardımcı olacaktır . MYSQL kullanıyorsanız, bir şeyi değiştirmeniz yeterlidir , sadece NewDataSet kelimesini DocumentElement tarafından cümle ile değiştirin obj2=(SoapObject) obj1.getProperty("NewDataSet");
void callWebService(){
private static final String NAMESPACE = "http://tempuri.org/"; // for wsdl it may be package name i.e http://package_name
private static final String URL = "http://localhost/sample/services/MyService?wsdl";
// you can use IP address instead of localhost
private static final String METHOD_NAME = "Function_Name";
private static final String SOAP_ACTION = "urn:" + METHOD_NAME;
SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME);
request.addProperty("parm_name", prm_value);// Parameter for Method
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
envelope.dotNet = true;// **If your Webservice in .net otherwise remove it**
envelope.setOutputSoapObject(request);
HttpTransportSE androidHttpTransport = new HttpTransportSE(URL);
try {
androidHttpTransport.call(SOAP_ACTION, envelope);// call the eb service
// Method
} catch (Exception e) {
e.printStackTrace();
}
// Next task is to get Response and format that response
SoapObject obj, obj1, obj2, obj3;
obj = (SoapObject) envelope.getResponse();
obj1 = (SoapObject) obj.getProperty("diffgram");
obj2 = (SoapObject) obj1.getProperty("NewDataSet");
for (int i = 0; i < obj2.getPropertyCount(); i++) {
// the method getPropertyCount() and return the number of rows
obj3 = (SoapObject) obj2.getProperty(i);
obj3.getProperty(0).toString();// value of column 1
obj3.getProperty(1).toString();// value of column 2
// like that you will get value from each column
}
}
Bununla ilgili herhangi bir sorunuz olursa bana yazabilirsiniz ..