2011-07-14 72 views
0

我必須在android(username and password)中創建登錄頁面,並且必須通過發送(用戶名和密碼)到url來驗證此登錄。是否有人知道我該怎麼做?如果你可以提供給我一些代碼,它會很棒!在android中創建登錄頁面

更新:有人可以告訴哪個是正確的方式來做一個HTTP POST和請求/?

+0

這個問題應該幫助http://stackoverflow.com/questions/6312196/what-is-the-best-practice-to-implement-a-login-auth-screen –

回答

0

試試這個

public class Login extends Activity { 
/** Called when the activity is first created. */ 


private static final String SOAP_ACTION = "http://tempuri.org/LoginUser"; 
private static final String METHOD_NAME = "LoginUser"; 
private static final String NAMESPACE = "http://tempuri.org/"; 
private static final String URL = "http://"; 
private static final String TAG = "HELLO"; 

@Override 
public void onCreate(Bundle savedInstanceState) { 
super.onCreate(savedInstanceState); 
setContentView(R.layout.main); 
Button signin = (Button) findViewById(R.id.regsubmitbtn); 



     signin.setOnClickListener(new OnClickListener() { 
    public void onClick(View v) { 

    new StartLoginAsyncTask(yourclass.this).execute(); 


    } 
}); 
    } 


    private class LoginTask extends AsyncTask<Void, Void, Boolean> { 
    private final ProgressDialog dialog = new ProgressDialog(YourClass.this); 

    protected void onPreExecute() { 
    this.dialog.setMessage("Logging in..."); 
    this.dialog.show(); 
    } 

    protected Boolean doInBackground(final Void unused) { 
    return Main.this.login(); //don't interact with the ui! 
    } 

     protected void onPostExecute(final Boolean result) { 
     if (this.dialog.isShowing()) { 
      this.dialog.dismiss(); 
      } 
      if (result.booleanValue()) { 
      //also show register success dialog 
     } 
     } 
      } 




      private String doLogin() { 
       EditText etxt_user = (EditText)findViewById(R.id.emaileditlog); 
       String email_id = etxt_user.getText().toString(); 
       EditText etxt_password = (EditText)findViewById(R.id.pwdeditlog); 
       String password = etxt_password.getText().toString(); 
          SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME); 
          request.addProperty("email", email); 
           request.addProperty("password", password); 

          SoapSerializationEnvelope soapEnvelope = new SoapSerializationEnvelope(SoapEnvelope.VER11); 
       soapEnvelope.dotNet = true; 
       soapEnvelope.setOutputSoapObject(request); 
       HttpTransportSE aht = new HttpTransportSE(URL); 

       Pattern EMAIL_ADDRESS_PATTERN =Pattern.compile(
         "[a-zA-Z0-9\\+\\.\\_\\%\\-\\+]{1,256}" + 
         "\\@" + 
         "[a-zA-Z0-9][a-zA-Z0-9\\-]{0,64}" + 
         "(" + 
         "\\." + 
         "[a-zA-Z0-9][a-zA-Z0-9\\-]{0,25}" + 
         ")+"); 
       Matcher matcher = EMAIL_ADDRESS_PATTERN.matcher(email_id); 
       if(matcher.matches()){ 
        Log.v(TAG, "Your email id is valid ="+email_id); 
       // System.out.println("Your email id is valid ="+email); 
       } 
       else{ 
       // System.out.println("enter valid email id"); 
        Log.v(TAG, "enter valid email id"); 
       } 
       if (password != null) 
        { 
        if(email_id.equalsIgnoreCase("")||password.equalsIgnoreCase("")) 
        { 
        System.out.println("Fields should not be EMPTY"); 
        } 
        } 

      SoapObject request = new SoapObject(NAMESPACE_LOGIN, METHOD_NAME_LOGIN); 
      request.addProperty("email", email_id); 
      request.addProperty("pwd", password); 



        SoapSerializationEnvelope soapEnvelope = new SoapSerializationEnvelope(SoapEnvelope.VER11); 
      soapEnvelope.dotNet = true; 
      soapEnvelope.setOutputSoapObject(request); 
      HttpTransportSE aht = new HttpTransportSE(URL_LOGIN); 

      try { 
        aht.setXmlVersionTag("<?xml version=\"1.0\" encoding=\"UTF-8\"?>"); 
      aht.call(SOAP_ACTION_LOGIN, soapEnvelope); 

      SoapObject resultsRequestSOAP = (SoapObject) soapEnvelope.bodyIn; 
      Log.v("TAG", String.valueOf(resultsRequestSOAP)); 

      Object response=(Object)soapEnvelope.getResponse(); 
      temp=response.toString(); 



      } catch (Exception e) { 

      e.printStackTrace(); 
      } 

     return(temp); 
     } 
+0

隨意提問:) – Randroid

+1

我與Ksoap2合作,請記住.... – Randroid