I want to pass an array from my Android application to my SOAP webservice using the ksoap libraries available.
My array looks like this:
String[] values={"abc","def"};
How to pass this as a parameter to my web service call?
Can anyone please help me out ?
This is my web service code :
public class Service1 : System.Web.Services.WebService
{
[WebMethod]
public String getnames(String[] values)
{
try
{
using (SqlConnection myConnection = new SqlConnection(@"Data Source=.\SQLEXPRESS;Initial Catalog=student;User ID=sa;Password=123"))
{
int count = 1;
int rows = 0;
myConnection.Open();
foreach (string student in values)
{
count++;
using (SqlCommand myCommand = new SqlCommand())
{
myCommand.Connection = myConnection;
myCommand.CommandText = "insert into record values(@pCount, @pStudent)";
SqlParameter param = myCommand.CreateParameter();
param.ParameterName = "@pCount";
param.Value = count;
myCommand.Parameters.Add(param);
param = myCommand.CreateParameter();
param.ParameterName = "@pSudent";
param.Value = student;
rows = myCommand.ExecuteNonQuery();
}
}
}
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
return "an error occured";
}
return "success";
}
}
}
my logcat :
11-10 12:26:56.159: INFO/System.out(334): ----null
11-10 12:26:56.159: DEBUG/AndroidRuntime(334): Shutting down VM
11-10 12:26:56.159: WARN/dalvikvm(334): threadid=1: thread exiting with uncaught exception (group=0x4001d800)
11-10 12:26:56.179: ERROR/AndroidRuntime(334): FATAL EXCEPTION: main
11-10 12:26:56.179: ERROR/AndroidRuntime(334): java.lang.NullPointerException
11-10 12:26:56.179: ERROR/AndroidRuntime(334): at com.example.display.call2(display.java:193)
11-10 12:26:56.179: ERROR/AndroidRuntime(334): at com.example.display$3.onClick(display.java:146)
11-10 12:26:56.179: ERROR/AndroidRuntime(334): at android.view.View.performClick(View.java:2408)
11-10 12:26:56.179: ERROR/AndroidRuntime(334): at android.view.View$PerformClick.run(View.java:8816)
11-10 12:26:56.179: ERROR/AndroidRuntime(334): at android.os.Handler.handleCallback(Handler.java:587)
11-10 12:26:56.179: ERROR/AndroidRuntime(334): at android.os.Handler.dispatchMessage(Handler.java:92)
11-10 12:26:56.179: ERROR/AndroidRuntime(334): at android.os.Looper.loop(Looper.java:123)
11-10 12:26:56.179: ERROR/AndroidRuntime(334): at android.app.ActivityThread.main(ActivityThread.java:4627)
11-10 12:26:56.179: ERROR/AndroidRuntime(334): at java.lang.reflect.Method.invokeNative(Native Method)
11-10 12:26:56.179: ERROR/AndroidRuntime(334): at java.lang.reflect.Method.invoke(Method.java:521)
11-10 12:26:56.179: ERROR/AndroidRuntime(334): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
11-10 12:26:56.179: ERROR/AndroidRuntime(334): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
11-10 12:26:56.179: ERROR/AndroidRuntime(334): at dalvik.system.NativeStart.main(Native Method)
11-10 12:26:56.189: WARN/ActivityManager(58): Force finishing activity com.example/.display
Thanks in advance
This is the sample code for reading SOAP web service, Hope this will help you,
Also look at
Android Lists IV: Accessing and Consuming a SOAP Web Service I
The Droid Chronicles – Web Services: Using kSOAP2 to Pass Complex Objects
EDIT:
It is a known issue with the KSOAP2 for Android library, which at the moment simply does not support arrays. The issue description is here:
http://code.google.com/p/ksoap2-android/issues/detail?id=19
A third-party patch, solution and an example can be found here:
http://people.unica.it/bart/ksoap2-patch/
Look on these link, You can find your answer on that.
Thanks.
Serialize to JSON or XML, send that JSON or XML to the server, decode that JSON or XML on the server. Not sure about the exact methods you would use in your case.