package bt.Mobile.abc;
import org.ksoap2.SoapEnvelope;
import org.ksoap2.serialization.SoapObject;
import org.ksoap2.serialization.SoapSerializationEnvelope;
import org.ksoap2.transport.HttpTransportSE;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.ProgressBar;
import android.widget.TextView;
import android.widget.Toast;
public class HelloAndroidActivity extends Activity {
private static final String APP_TAG = "BT Android";
// TO VALIDATE THE LOGIN
private static final String SOAP_ACTION = "http://SmartApp.boothtracker.com/ValidateLogin";
private static final String METHOD_NAME = "ValidateLogin";
private static final String NAMESPACE = "*****.com/";
private static final String URL = "*****.asmx";
TextView tvUserName;
TextView tvPassword;
TextView tvStatus;
ProgressBar progressBar1;
/** SelectedBooth used to store the Selected Booths **/
public String SelectedBooth;
public String getSelectedBooth() {
return SelectedBooth;
}
public void setSelectedBooth(String SelectedBooth) {
this.SelectedBooth = SelectedBooth;
}
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
new eula.OnEulaAgreedTo() {
public void onEulaAgreedTo() {
// TODO Auto-generated method stub
}
};
// VALIDATE USER LOGIN
try
{
setContentView(R.layout.main);
// INITIALIZE CONTROLS USED IN FORM
tvUserName=(TextView)findViewById(R.id.editText1);
tvPassword=(TextView)findViewById(R.id.editText2);
tvStatus=(TextView)findViewById(R.id.txtStatus);
progressBar1 = (ProgressBar)findViewById(R.id.progressBar1);
progressBar1.setVisibility(View.GONE);
Button b = (Button)findViewById(R.id.btnSignIn);
b.setOnClickListener(new View.OnClickListener(){
public void onClick(View arg0){
progressBar1.setVisibility(View.VISIBLE);
tvStatus.setText("Processing...");
try {
// INVOKE THE WS TO GET THE LOGIN VALIDATED
SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME);
request.addProperty("UserName", tvUserName.getText().toString());`enter code here`
request.addProperty("Password", tvPassword.getText().toString());
Toast.makeText(getApplicationContext(), ("Connecting"), Toast.LENGTH_LONG).show();
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
envelope.dotNet=true;
envelope.setOutputSoapObject(request);
Toast.makeText(getApplicationContext(), (URL), Toast.LENGTH_LONG).show();
HttpTransportSE androidHttpTransport = new HttpTransportSE(URL);
androidHttpTransport.call(SOAP_ACTION, envelope);
Toast.makeText(getApplicationContext(), ("Sending"), Toast.LENGTH_LONG).show();
Object result = (Object)envelope.getResponse();
String strResult = result.toString();
progressBar1.setVisibility(View.GONE);
if (strResult.equals("True"))
{
//LOGIN WAS SUCESSFULL - PROCED TO NEXT PAGE
tvStatus.setText("Login Successfull, Please Wait...");
tvPassword.setText("");
Intent i = new Intent(HelloAndroidActivity.this, newfile.class);
startActivity(i);
finish();
}
else
{
// LOGIN FAILED TO AUTHENTICATE
Toast.makeText(getApplicationContext(), ("Invalid Username and Password"), Toast.LENGTH_LONG).show();
tvStatus.setText("Invalid username & password");
tvPassword.setText("");
}
} catch (Exception e) {
// LOGIN FAILED; NOTIFY THE USER AND WAIT
Toast.makeText(getApplicationContext(), (e.getMessage()), Toast.LENGTH_LONG).show();
tvStatus.setText("Connection Failure");
tvStatus.setText(e.getMessage());
tvPassword.setText("");
}
}
});
}
catch (Exception e)
{
Log.e(APP_TAG, Log.getStackTraceString(e));
}
}
}
我是Android新手,我创建了一个小应用程序并调用了一个Web方法。它总是正常工作,但突然停止工作,它没有连接到WS。我正在使用KSOAP2。我可以通过浏览器访问WS。我没有对代码进行任何更改。在交付时它工作正常,它停止运行。
Version- GingerBread,使用Eclipse,WS是asmx。我正在使用带有2.6.5 jar的KOSAP2 ..请帮助我非常关键
答案 0 :(得分:0)
而不是
Object result = (Object)envelope.getResponse();
尝试使用
SoapPrimitive result = (SoapPrimitive) envelope.getResponse();