I'm trying to fetch the username and password values from the mysql database using soap. but i'm getting 'android.os.NetworkOnMainThreadException', please tell me how to use AsyncTask to avoid this exception.
package com.example.androidloginexampleactivity;
import java.io.IOException;
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;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
public class AndroidLoginExampleActivity extends Activity {
private final String NAMESPACE = "http://10.0.2.2:80/urn:stockserver";
private final String URL = "http://10.0.2.2:80/stockserver1.php?wsdl";
//private final String URL = " http://10.0.2.2:8080/WebApplication2/Login?Tester";
private final String SOAP_ACTION = "http://10.0.2.2:80/urn:stockserver#getStockQuote";
private final String METHOD_NAME = "getStockQuote";
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_android_login_example);
Button login = (Button) findViewById(R.id.btn_login);
login.setOnClickListener(new View.OnClickListener() {
public void onClick(View arg0) {
loginAction();
}
});
}
private void loginAction(){
SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME);
EditText userName = (EditText) findViewById(R.id.tf_userName);
String user_Name = userName.getText().toString();
EditText userPassword = (EditText) findViewById(R.id.tf_password);
String user_Password = userPassword.getText().toString();
//Pass value for userName variable of the web service
PropertyInfo unameProp =new PropertyInfo();
unameProp.setName("userName");//Define the variable name in the web service method
unameProp.setValue(user_Name);//set value for userName variable
unameProp.setType(String.class);//Define the type of the variable
request.addProperty(unameProp);//Pass properties to the variable
//Pass value for Password variable of the web service
PropertyInfo passwordProp =new PropertyInfo();
passwordProp.setName("password");
passwordProp.setValue(user_Password);
passwordProp.setType(String.class);
request.addProperty(passwordProp);
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER10);
envelope.setOutputSoapObject(request);
HttpTransportSE androidHttpTransport = new HttpTransportSE(URL);
try{
androidHttpTransport.call(SOAP_ACTION, envelope);
SoapPrimitive response = (SoapPrimitive)envelope.getResponse();
TextView result1 = (TextView) findViewById(R.id.tv_status);
result1.setText(response.toString());
Toast.makeText(getApplicationContext(), response.toString(), 5).show();
}
catch(Exception e){
Toast.makeText(getApplicationContext(), e.toString(), 5).show();
}
}
}