Calling Java Web Service With Parameters From Android
package com.mnbd.movieticket;
public class common
{
public static String pName = "com.mnbd.movieticket";
public static String CardNo = "EC400044";
public static String UserID = "gs001";
public static String Password = "1234";
}
package com.mnbd.movieticket;
import org.ksoap2.SoapEnvelope;
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;
public class WebService {
//Namespace of the Webservice - can be found in WSDL
private static String NAMESPACE = "http://ws.apache.org/axis2";
//Webservice URL - WSDL File location
private static String URL = "http://27.147.140.234:8082/axis2/services/CineplexService?wsdl";
//SOAP Action URI again Namespace + Web method name
private static String SOAP_ACTION = "http://ws.apache.org/axis2";
public static String invokeWS(String json, String webMethName) {
String resTxt = null;
// Create request
SoapObject request = new SoapObject(NAMESPACE, webMethName);
// Property which holds input parameters
PropertyInfo sayHelloPI = new PropertyInfo();
// Set Name
sayHelloPI.setName("args0");
// Set Value
sayHelloPI.setValue(json);
// Set dataType
sayHelloPI.setType(String.class);
// Add the property to request object
request.addProperty(sayHelloPI);
// Create envelope
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(
SoapEnvelope.VER11);
// Set output SOAP object
envelope.setOutputSoapObject(request);
// Create HTTP call object
HttpTransportSE androidHttpTransport = new HttpTransportSE(URL);
try {
// Invoke web service
androidHttpTransport.call(SOAP_ACTION+webMethName, envelope);
// Get the response
SoapPrimitive response = (SoapPrimitive) envelope.getResponse();
// Assign it to resTxt variable static variable
resTxt = response.toString();
} catch (Exception e) {
//Print error
e.printStackTrace();
//Assign error message to resTxt
resTxt = "Error";
}
//Return resTxt to calling object
return resTxt;
}
}
package com.mnbd.movieticket;
import java.util.StringTokenizer;
import org.json.JSONArray;
import org.json.JSONObject;
import org.json.JSONTokener;
import android.os.AsyncTask;
import android.os.Bundle;
import android.view.View;
import android.widget.ProgressBar;
import android.widget.TextView;
import android.app.Activity;
public class JavaWebserviceCallByAndroid extends Activity {
private TextView txtBalance ;
ProgressBar pg;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_java_webservice_call_by_android);
txtBalance = (TextView) findViewById(R.id.txtBal);
pg= (ProgressBar) findViewById(R.id.progressBar1);
SetBalance();
}
private void SetBalance() {
String reponse = "";
AsyncCallWS task = new AsyncCallWS();
task.execute();
}
private class AsyncCallWS extends AsyncTask<String, Void, Void> {
@Override
protected void onPreExecute() {
pg.setVisibility(View.VISIBLE);
}
@Override
protected void onProgressUpdate(Void... values) {
// super.onProgressUpdate(values);
}
@Override
protected void onPostExecute(Void result) {
if (returnstring.equalsIgnoreCase("Error"))
txtBalance.setText("Couldn't establish connection");
if (code.equalsIgnoreCase("100"))
txtBalance.setText("Balance Amount:" + Bal);
else if (code.equalsIgnoreCase("101"))
txtBalance.setText("Not Found");
else if (code.equalsIgnoreCase("102"))
txtBalance.setText("Authentication Failed");
else if (code.equalsIgnoreCase("109"))
txtBalance.setText("Network Adapter couldn't establish connection");
pg.setVisibility(View.INVISIBLE);
}
private String MethodName, jsonstring, returnstring;
String Bal = "";
String code = "";
@Override
protected Void doInBackground(String... arg0) {
// Invoke webservice
try {
jsonstring = "{'cardnumber':'" + Common.CardNo
+ "','username':'" + Common.UserID + "', 'password':'"
+ Common.Password + "', 'other':'1'}";
returnstring = WebService.invokeWS(jsonstring, "Get_Balance");
JSONArray jsa;
if (!returnstring.equalsIgnoreCase("Error")) {
JSONObject object = (JSONObject) new JSONTokener(
returnstring).nextValue();
// Response Data
String query = object.getString("responseData");
StringTokenizer tokens = new StringTokenizer(query, ":");
String first_string = tokens.nextToken();
String second_string = tokens.nextToken();
tokens = new StringTokenizer(second_string, "\"");
Bal = tokens.nextToken();
// Response Code
String queryCode = object.getString("responseCode");
StringTokenizer tokensCode = new StringTokenizer(query,
"\"");
code = tokensCode.nextToken();
// JSONArray locations = object.getJSONArray("query");
txtBalance.setText("Balance Amount:" + Bal);
}
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
}
}