web-dev-qa-db-fra.com

Valeur nulle lorsque Valeurs [FromBody] à la méthode post by Postman plugin

J'utilise le contrôleur api dans l'API Web ASP.net et j'ai besoin de transmettre une valeur à la méthode de publication par le type [FromBody].

 [HttpPost]
 public HttpResponseMessage Post( [FromBody]string name)
 {
     ....
 }

j'utilise Facteur plugin, mais quand envoyer à poster valeur de la méthode nom est toujours nul.. suis cette image: enter image description here

et dans les méthodes de poste: enter image description here

pourquoi cela est-il arrivé?!

35

Vous ne pouvez pas lier une seule chaîne primitive à l'aide de json et de fromBody, json transmettra un objet et le contrôleur attendra un objet complexe (modèle) à son tour. Si vous souhaitez n'envoyer qu'une seule chaîne, utilisez le codage d'URL.

Sur votre en-tête

Content-Type: application/x-www-form-urlencoded

Le corps du message de requête POST) doit être =saeed (basé sur votre valeur de test) et rien d’autre. Pour les chaînes inconnues/variables, vous devez encoder la valeur dans l’URL de manière à ne pas vous échapper accidentellement avec un caractère saisi.


Alternatif 1

Créez un modèle et utilisez-le à la place.

Valeur du corps du message: {"name":"saeee"}

c #

public class CustomModel {
    public string Name {get;set;}
}

Méthode du contrôleur

public HttpResponseMessage Post([FromBody]CustomModel model)

Alternatif 2

Passez des chaînes primitives à votre publication en utilisant l'URI au lieu du corps du message.

34
Igor

Postez la chaîne avec json brut et n’oubliez pas les guillemets doubles.

enter image description here

39
Feiyu Zhou