2010-10-02 6 views
5

Je travaille sur une application d'envoi de SMS et à 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 pour le serveur web.Erreur de serveur interne

Lorsque je clique sur le bouton lo-gin, l'application ne répond pas et la console imprime le message suivant en réponse à 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 ...

tout le code 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()); 
    } 
    } 
} 

Répondre

1

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 définissez les paramètres à la demande fait un peu bizarre, essayez de régler les paramètres 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); 
    //... 
+0

Je reçois cette erreur étrange parce que le paramètre de la méthode post a des valeurs nulles sur le serveur, je ne sais pas pourquoi ces paramètres ne sont pas ajoutés dans cette méthode, –

+0

pouvez-vous s'il vous plaît dites-moi pourquoi cela cause? –

+0

Essayez l'extrait de code. –

Questions connexes