2012-07-19 2 views
0

Salut j'ai développé un formulaire de connexion en appelant soap webservices.it est un succès pleinement travaillé pour moi ... Mais maintenant je mets en œuvre la partie one.here je vais faire la gestion de la session ... comment est la fabrication gestion de session dans le formulaire de connexion dis.please me guider.gestion de session est android appel webservices

dis est ma partie de codage Android:

package com.soap; 
    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.content.Intent; 
    import android.os.Bundle; 
    import android.view.View; 
    import android.widget.Button; 
    import android.widget.CheckBox; 
    import android.widget.EditText; 
    import android.widget.TextView; 
    import android.content.SharedPreferences; 
    import android.content.Context; 
    public class Login extends Activity { 
    private static final String SPF_NAME = "vidslogin"; 
    private static final String USERNAME = "username"; 
    private static final String PASSWORD = "password"; 

    EditText userName,userPassword; 
    private final String NAMESPACE = "http://ws.userlogin.com"; 
    private final String URL = "http://192.168.1.168:8085/LoginSoap/services/Login?wsdl"; 
    private final String SOAP_ACTION = "http://ws.userlogin.com/authentication"; 
    private final String METHOD_NAME = "authentication"; 
    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.login); 

Button logout = (Button) findViewById(R.id.btn_logout); 
    logout.setOnClickListener(new View.OnClickListener() { 

public void onClick(View v) { 
// Switching to Register screen 
    Intent i = new Intent(getApplicationContext(), Login.class); 
    startActivity(i); 
    } 
    }); 

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.VER11); 
    envelope.setOutputSoapObject(request); 
    HttpTransportSE androidHttpTransport = new HttpTransportSE(URL); 

    try{ 
     androidHttpTransport.call(SOAP_ACTION, envelope); 
      SoapPrimitive response = (SoapPrimitive)envelope.getResponse(); 

      TextView result = (TextView) findViewById(R.id.tv_status); 
      result.setText(response.toString()); 

    } 
    catch(Exception e){ 

    } 
    } 

    } 

Guidez-moi comment faire session en application android. s'il vous plaît donnez-moi quelques idées.

Répondre

1

Il existe différentes manières de mettre en œuvre Session Management. Je suggère que vous devriez essayer d'utiliser Cookies

Les nouvelles versions ksoap (ksoap 2.5.4 je suppose) a un support de cookie construit qui vous permet de transmettre des cookies dans et hors de votre application.

Détails

La classe HttpTransportSE expose l'appel de méthode qui, au-delà des paramètres SOAP requis, accepte également une liste des HeaderProperty cas. Il renvoie également une liste similaire. Cela permet d'ajouter des en-têtes supplémentaires à la demande et d'examiner les en-têtes renvoyés. Comme un cookie n'est qu'un de ces en-têtes, on peut utiliser cette fonction pour envoyer et recevoir des cookies.

Les cookies sont simplement reçus du service Web et envoyés au service Web en tant qu'en-têtes dans le préambule HTTP. Pour utiliser les cookies avec ksoap2-android, vous devez enregistrer les cookies renvoyés et les renvoyer avec des appels ultérieurs au service Web.

Exemple

List respHeaders = android_http.call(SOAP_ACTION, envelope2, reqHeaders); 
    for(int ix=0; ix<respHeaders.size(); ix++) { 
    HeaderProperty hp = (HeaderProperty)respHeaders.get(ix); 
    System.out.println("Header"+ix+"="+hp.getKey()+"/"+hp.getValue()); 

Ainsi, pour la gestion de session vous pouvez simplement sauvegarder vos cookies et mettez-les sur une demande.

Voici une question qui montre How to save and return cookies to web service

Source d'information: ksoap2-android and cookies

+0

comment est utilisé ci-dessus coding.because je ne peux pas me comprendre aider dis part.please de codage –

+0

ce qui fait est qu'il est obtenir une liste d'en-têtes de réponse, puis vous pouvez itérer à travers elle. Si vous voyez le lien de question que j'ai donné, vous comprendrez qu'il est fait pour stocker les cookies pour la gestion de session –

+0

salut je ne peux pas développer ne dis.please m'envoyer un exemple avec une explication claire de codage. –