Ceci est une question de suivi de Sending html commands over httpclient android, j'ai POSTé avec succès au serveur et reçu le code 200, mais quand je tente de passer à une autre page, il ne reconnaît pas que je me suis connecté. Je me demande s'il s'agit d'un problème de session ou si j'ai besoin de suivre la redirection après le POST. Comment pourrais-je suivre une redirection? Encore une fois toute aide est grandement appréciée. Voici une simple application HttpClient/POST que j'ai créée à partir d'exemples afin de m'aider à tester rapidement les changements.HttpClient Post problème de session? Comment savoir si la session a été créée?
public class HttpClientTest extends Activity{
HttpClient client = new DefaultHttpClient();
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
final Button btnFetch = (Button)findViewById(R.id.button);
final TextView txtResult = (TextView)findViewById(R.id.content);
final Button login = (Button)findViewById(R.id.button2);
btnFetch.setOnClickListener(new Button.OnClickListener(){
public void onClick(View v){
getRequest(txtResult);
}
});
login.setOnClickListener(new Button.OnClickListener(){
public void onClick(View v){
try {
login(txtResult);
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
});
}
public void getRequest(TextView txtResult){
HttpGet request = new HttpGet("http://gc.gamestotal.com/i.cfm?f=com_empire&cm=3");
try{
HttpResponse response = client.execute(request);
txtResult.setText(Parser.request(response));
}catch(Exception ex){
txtResult.setText("Failed!");
}
}
public void login(TextView txtResult) throws UnsupportedEncodingException, IOException{
String action = "i.cfm?&1028&p=login&se=4";
String yourServer = "http://gc.gamestotal.com/";
HttpPost post = new HttpPost(yourServer + action);
List<NameValuePair> params = new ArrayList<NameValuePair>();
params.add(new BasicNameValuePair("nic", "user"));
params.add(new BasicNameValuePair("password", "password"));
params.add(new BasicNameValuePair("server", "4"));
UrlEncodedFormEntity entity = new UrlEncodedFormEntity(params, "UTF-8");
post.setEntity(entity);
try{
HttpResponse response = client.execute(post);
txtResult.setText(response.getEntity().toString());
}catch(Exception ex){
txtResult.setText("Failed!");
}
}
}
I appuyer sur le bouton de connexion sur l'interface utilisateur qui me donne le code de réponse OK Http/1.1 200, mais quand je presse le bouton btnFetch qui me envoie à une page dans laquelle vous devez mais connecté pour accéder, je reçois la page non connecté. Des idées?
Vous devez poser cette question à la personne qui a écrit l'application Web à laquelle vous accédez. Seulement ils peuvent vous dire comment ils veulent que vous fassiez ce que vous essayez de faire. – CommonsWare
J'en avais peur. Merci pour votre réponse. –
Peut-être quelques problèmes de cookie .. S'il vous plaît vérifier – Vinay