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 :
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 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); } }
Dans cet extrait, j'ai mis
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; }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 = "{\"test\":\"coucou\"}";
ou m�me simplement
Code : S�lectionner tout - Visualiser dans une fen�tre � part chaine = "{'':\"coucou\"}";
. enfin bref, j'ai tent� beaucoup de formats, tout en variant les "content-type" mais rien n'y fait :
Code : S�lectionner tout - Visualiser dans une fen�tre � part =coucou
- 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![]()
Partager