Pregunta

    

Esta pregunta ya tiene una respuesta aquí:

    
            
  •              Cómo hacer un HTTP POST en Android?                                      2 respuestas                          
  •     
    

Estoy trabajando en un SMS Envío de aplicación y con fines de inicio de sesión quiero enviar el nombre de usuario y la contraseña utilizando el método POST en mi solicitud para Android para el servidor web.

Cuando hago clic en el botón lo-gin la aplicación no está respondiendo y la consola imprime el siguiente mensaje en respuesta de la solicitud POST.

HTTP / 1.1 500 Error interno del servidor

Mientras mi aplicación que se ejecuta bien con el método GET.

No soy capaz de averiguar por qué esto está causando ...

Todo el código está aquí:

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());
    }
    }
}
¿Fue útil?

Solución 2

Aquí está la solución para esto:

Cómo hacer un HTTP POST en Android?

Otros consejos

Eso es definitivamente parece que el error del lado del servidor, no un problema androide. Vistazo a los archivos de registro del servidor.

La forma en que está parámetros de ajuste para solicitar ve raro, intente configurar los parámetros de la siguiente manera:

    HttpPost post = new HttpPost("url of my site");
    BasicHttpParams basicHttpParams = new BasicHttpParams();
    basicHttpParams.setParameter("username", "vikaspatidar");
    basicHttpParams.setParameter("password", "patidar");
    post.setParams(basicHttpParams);
    //...
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top