Question

    

Cette question a déjà une réponse ici:

    
            
  •              Comment faire un HTTP Post dans Android?                                      2 réponses                          
  •     
    

Je travaille sur un SMS d'envoi et l'application à des fins de connexion je veux envoyer le nom d'utilisateur et mot de passe en utilisant la méthode POST de mon application Android au serveur Web.

Lorsque je clique sur le bouton lo-gin l'application ne répond pas et la console affiche le message suivant en réponse de la demande Post.

HTTP / 1.1 500 Internal Server Error

Alors que mon application fonctionne bien avec la méthode GET.

Je ne suis pas en mesure de comprendre pourquoi cela cause ...

le code entier est ici:

package com.vikas.httplogin;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;

import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;

import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.widget.TextView;

public class HttpLogin extends Activity {
    TextView tv;

    private static final String tag ="FATAL_ERROR";

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);        
        connecttoServer();
    }

    private void connecttoServer()
    {
        BufferedReader br = null;
        try
        {
            HttpClient client = new DefaultHttpClient();
            HttpPost request = new HttpPost("url of my site");

            List<NameValuePair> params = new ArrayList<NameValuePair>(3);

            params.add(new BasicNameValuePair("username","vikaspatidar"));
            params.add(new BasicNameValuePair("password", "patidar"));
            UrlEncodedFormEntity entity = new UrlEncodedFormEntity(params);

           request.setEntity(entity);

          Log.v(tag,request.getMethod().toString());
          HttpResponse response = client.execute(request);


           Log.v(tag, response.getStatusLine().toString());
            br = new BufferedReader(new InputStreamReader(response.getEntity().getContent()));
            StringBuffer sb = new StringBuffer("");
            String line = "";
            String NL = System.getProperty("line.separator");
            while ((line = br.readLine()) != null) {
                sb.append(line + NL);
            }
            br.close();
            String result = sb.toString();
            Log.v(tag, result);


    } catch (ClientProtocolException e)
    {

        Log.v(tag, e.getMessage());
    }
     catch (IllegalStateException e) {

         Log.v(tag, e.getMessage());
    } catch (IOException e) {

         Log.v(tag, e.getMessage());
    }
    }
}
Était-ce utile?

La solution 2

Voici la solution pour cela:

Comment faire un HTTP Post dans Android?

Autres conseils

C'est ressemble vraiment à l'erreur côté serveur, pas le problème android. Regardez les fichiers journaux du serveur.

La façon dont vous les paramètres de réglage à apparence de demande paramètres bizarre, essayez de régler comme ceci:

    HttpPost post = new HttpPost("url of my site");
    BasicHttpParams basicHttpParams = new BasicHttpParams();
    basicHttpParams.setParameter("username", "vikaspatidar");
    basicHttpParams.setParameter("password", "patidar");
    post.setParams(basicHttpParams);
    //...
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top