Paramètre Null sur le web api méthode post
J'ai un web très simple api contrôleur:
public class CarrinhoController : ApiController
{
[HttpPost]
public string Adiciona([FromBody] string conteudo)
{
return "<status>sucesso</status";
}
}
Maintenant, je suis sur le serveur et d'essayer de tester cette méthode via curl
comme ceci:
curl --data "teste" http://localhost:52603/api/carrinho
La demande est arrivée dans mon contrôleur. Toutefois, le paramètre conteudo
vient toujours vide.
Ce que je fais mal?
Grâce.
- Que diriez -
curl --data "conteudo=teste" http://localhost:52603/api/carrinho
Vous devez vous connecter pour publier un commentaire.
Ces postes expliquer le même problème en détail http://encosia.com/using-jquery-to-post-frombody-parameters-to-web-api/
Sur asp.net site http://www.asp.net/web-api/overview/formats-and-model-binding/parameter-binding-in-aspnet-web-api
Ajouter "Content-Type: application/json" sur Fiddler fonctionne.
Selon le
Content-Type
vous envoyez détermine comment ASP.NET WebAPI lie les paramètres.Essayer d'envoyer les éléments suivants à la place (forme codée)
Alternativement, si vous ne voulez pas le contraignant à se produire, vous supprimez tous les paramètres et de lire les données publiées
Content-Type: application/x-www-form-urlencoded
d'en-tête dans votrecurl
appel? Essayez mon 2ème exemple si cela ne fonctionne pas pour vous.Vous avez besoin de nommer le paramètre dans le POST de données pour correspondre à la méthode nom de paramètre. Changer votre
curl
paramètre de données à ce format:Par exemple:
Vous pourriez avoir une mauvaise (incorrect) de la demande. WebAPI utilise JSON sérialiseur qui ignore demande mal formulée erreurs et les transmet simplement nulle par.
Comme un exemple,
-
JS:
JS:
Action de contrôleur:
JS: