Paramètres POST dans CURL

Je suis d'essayer d'utiliser CURL pour envoyer un simple POSTE de paramètre (un int) pour un ASP.NET web api contrôleur méthode POST comme ceci:

curl -d "id=1" --ntlm --user <user>:<pass> http://dev.test.local/api/test

Est-ce la bonne façon d'attacher des données à la POSTE pour Curl? Je peux communiquer avec l'URL bien, mais il semble que le paramètre 'id' n'obtient pas passé car j'obtiens l'erreur suivante retourné par le serveur:

"The parameters dictionary contains a null entry for parameter 'id' of non-nulla
ble type 'System.Int32' for method 'System.String Post(Int32)' in 'Test.Si
te.Controllers.TestController'. An optional parameter must be a reference type,
a nullable type, or be declared as an optional parameter."

Ma méthode POST dans la OrderController est comme suit:

    //POST api/test
    public string Post(int id)
    {
        return "Post successful";
    }

Toute aide est très appréciée.

  • Si vous êtes curieux de savoir exactement ce que curl est de l'envoi, vous pouvez exécuter curl --trace-ascii curl.log -d id=1 ... et puis regardez dans curl.log (qui vous montrera que curl est la génération d'un tout à fait normal POST demande)
  • Ok, j'ai eu un coup d'oeil à la et le journal d'erreur est le même que celui figurant ci-dessus?
  • est-il possible que les données envoyées par le roulage est interprété comme une chaîne de caractères, et non pas comme un entier, et, par conséquent, est entaché de nullité en quelque sorte par .net? Pensez à changer votre fonction à accepter une Chaîne à la place et laissez-nous savoir si cela aide.
InformationsquelleAutor davey1990 | 2012-08-07