2012-07-14 64 views
0
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。我没有对代码做任何改变它在交付时停止运行时工作良好。网络服务响应失败肥皂2

版本 - GingerBread,使用Eclipse,WS是asmx。我使用KOSAP2与2.6.5 jar..please帮助我,这非常关键

+0

任何错误... – 2012-07-14 18:52:34

+0

没有错误的日志 – Ankur 2012-07-14 19:04:25

+0

粘贴你的一些代码......这会更好地帮助你。 – yugidroid 2012-07-14 19:09:13

回答

0

而不是

Object result = (Object)envelope.getResponse(); 

尝试使用在logcat的

SoapPrimitive result = (SoapPrimitive) envelope.getResponse(); 
+0

已尝试..但它没有工作 – Ankur 2012-07-14 19:36:55

+0

SOAP_ACTION名称与运行Web服务时获得的URL相同吗? – 2012-07-14 19:41:49

+0

是的它是正确的 – Ankur 2012-07-14 19:45:37