IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les r�ponses en temps r�el, voter pour les messages, poser vos propres questions et recevoir la newsletter

ASP.NET MVC Discussion :

Parametre toujours null lors d'un POST vers un controlleur MVC


Sujet :

ASP.NET MVC

  1. #1
    Membre chevronn�
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    D�cembre 2005
    Messages
    482
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 44

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : D�cembre 2005
    Messages : 482
    Par d�faut Parametre toujours null lors d'un POST vers un controlleur MVC
    Salut,
    habituellement dev en Windows form, je suis charg� de cr�er une appli pour Android (en c#).
    Afin de communiquer avec la BDD de l'entreprise, j'ai choisi d'utiliser la techno MVC pour cr�er un service web REST.
    Malgr� mes (TRES) nombreuses lectures sur un tas de forums, je n'ai pas trouv� de solution � mon probl�me :

    J'ai beau envoyer ce que je veux comme param�tre � mon service Web, la variable en entr�e reste toujours NULLe.
    Voici le code de mon Controller :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    public class Ajoute_VisiteController : ApiController
        {
            //[HttpPost]
            public object Post([FromBody]string test)
            {
                if (test == null)
                    return Request.CreateResponse(HttpStatusCode.OK, "L'argument est NULL");
                else if (test == string.Empty)
                    return Request.CreateResponse(HttpStatusCode.OK, "L'argument est vide");
                else 
                    return Request.CreateResponse(HttpStatusCode.OK, "Envoi = " + test);
            }
        }
    Voici mon code du cot� client Android :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
     
    public static string Envoie_Chaine_ServiceWeb(string chaine, string URL_ServiceWeb)
    		{			
    			HttpURLConnection urlConnection = null;
    			URL url;
    			url = new URL(URL_ServiceWeb);
    			string retour = string.Empty;	
     
    			chaine = "{\"test\":\"coucou\"}";
     
    			try//Envoi
    			{				
    				urlConnection = (HttpURLConnection) url.OpenConnection();
    				urlConnection.RequestMethod = "POST";
    				urlConnection.SetRequestProperty("Content-Type", "application/json; charset=UTF-8");
    				urlConnection.DoInput = true;
    				urlConnection.DoOutput = true;
     
    				Stream os = urlConnection.OutputStream;
    				PrintWriter pw = new PrintWriter(os);
    				pw.Print(chaine);
    				pw.Close();
    			}
    			catch(Exception ex) 
    			{
    				throw new Exception("Erreur Lors de l'envoi : " + ex.Message);
    			}
     
    			try
    			{
    				HttpStatus status = urlConnection.ResponseCode;
    				DataInputStream erd = new DataInputStream(urlConnection.ErrorStream);				
     
    				if (status != HttpStatus.Ok)
    				{
    					string ligneErr = string.Empty;
    					while((ligneErr = erd.ReadLine()) != null)
    					{
    						retour += ligneErr;
    					}
    					erd.Close();
    				}
     
    				DataInputStream rd = new DataInputStream(urlConnection.InputStream);				
    				string ligne = string.Empty;
    				while((ligne = rd.ReadLine()) != null)
    				{
    					retour += ligne;
    				}
    				rd.Close();
    			}
    			catch(Exception ex) 
    			{
    				throw new Exception("Erreur Lors de la réception de la réponse : " + ex.Message);
    			}
     
    			return retour;
    		}
    Dans cet extrait, j'ai mis
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    chaine = "{\"test\":\"coucou\"}";
    mais j'ai test� avec bien d'autres formats, sur un site j'ai vu qu'il fallait utiliser
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    chaine = "{'':\"coucou\"}";
    ou m�me simplement . enfin bref, j'ai tent� beaucoup de formats, tout en variant les "content-type" mais rien n'y fait :
    - l'envoi se passe bien
    - le status du ResponseCode est bien � OK
    - je r�cup�re bien une chaine en retour mais c'est toujours celle-ci : "L'argument est NULL" (voir le code de mon Controller).

    J'ai bien vu que pas mal de gens avaient cette erreur de param�tre null quand ils d�butaient en MVC, mais aucune solution n'a corrig� mon probl�me

    Si quelqu'un a une id�e, je lui serais tr�s reconnaissant

  2. #2
    Membre tr�s actif
    Homme Profil pro
    D�veloppeur .NET
    Inscrit en
    F�vrier 2007
    Messages
    871
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 41
    Localisation : Canada

    Informations professionnelles :
    Activit� : D�veloppeur .NET

    Informations forums :
    Inscription : F�vrier 2007
    Messages : 871
    Par d�faut
    Salut,

    C'est ton utilisation de web request qui est pas bonne, regarde ce lien pour le formattage des parametres:

    https://technet.rapaport.com/Info/Pr...l_Example.aspx

  3. #3
    Membre tr�s actif
    Avatar de charouel
    Homme Profil pro
    Freelance
    Inscrit en
    Mars 2009
    Messages
    618
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 40
    Localisation : France, Val de Marne (�le de France)

    Informations professionnelles :
    Activit� : Freelance
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Mars 2009
    Messages : 618
    Billets dans le blog
    9
    Par d�faut
    Tu trouve sur ce lien un exemple de WebAPI ASP RESET avec ASP.NET
    http://www.asp.net/web-api/overview/...aspnet-web-api

  4. #4
    Membre chevronn�
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    D�cembre 2005
    Messages
    482
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 44

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : D�cembre 2005
    Messages : 482
    Par d�faut
    OMG !!

    Merci mermich,

    en fait il m'a fallu changer cette ligne :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
     
    urlConnection.SetRequestProperty("Content-Type", "application/json");
    en
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
     
    urlConnection.SetRequestProperty("Content-Type", "application/x-www-form-urlencoded");
    et
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
     
    chaine = "{\"test\":\"coucou\"}";
    par
    j'avais d�j� test� ces param�tres, mais je n'avais jamais test� les deux en m�me temps
    (soit je passais encore les parametres en format json, soit je mettais le "test=coucou" (le 'test' est en trop...))

    Tant de temps perdu pour si peu

    Merci beaucoup et passe un bon Week-end

  5. #5
    Membre chevronn�
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    D�cembre 2005
    Messages
    482
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 44

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : D�cembre 2005
    Messages : 482
    Par d�faut
    Citation Envoy� par charouel Voir le message
    Tu trouve sur ce lien un exemple de WebAPI ASP RESET avec ASP.NET
    http://www.asp.net/web-api/overview/...aspnet-web-api
    Salut charouel,
    je m'�tais bas� sur ce lien pour cr�er mon service web,
    mais en fait c'est au niveau du format de mon param�tre cot� client que �a d�connait.

    Merci pour ton post et bon week-end

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. Probleme d'une valeur null sous excel lors de s'importation vers sql
    Par SISGI dans le forum VB 6 et ant�rieur
    R�ponses: 0
    Dernier message: 03/07/2013, 12h39
  2. Pointeur en parametre de sortie : toujours NULL !
    Par Ange_blond dans le forum C++
    R�ponses: 6
    Dernier message: 16/04/2009, 16h47
  3. Erreur lors du post vers la meme page!
    Par ozzmax dans le forum Langage
    R�ponses: 10
    Dernier message: 23/01/2006, 19h16
  4. R�ponses: 6
    Dernier message: 17/06/2005, 14h40
  5. R�ponses: 13
    Dernier message: 16/04/2004, 12h00

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo