Erreur d'affichage JSON Web API 2 : La demande de l'entité des médias de type 'text/plain' n'est pas pris en charge pour cette ressource

J'ai cette classe :

public class MyClass
{
    public MyClass() { Secret = "Don't tell me"; }
    public string Name { get; set; }
    public int Age { get; set; }
    public string Description { get; set; }
    private string Secret { get; set; }
}

Et cette API WEB méthode :

        //POST api/fixture
    public HttpResponseMessage Post(MyClass value)
    {
        return new HttpResponseMessage(HttpStatusCode.Created);
    }

J'ai mis de l'API Web de retour JSON au lieu de XML et je n'ai pas fait d'autres changements à la configuration par défaut. Je suis en train de tester cette méthode avec la RESTClient extension de Firefox. Voici ma requête :

POST localhost:XXXX/api/fixture
Content-Type: application/json
Accept: application/json
Content-Length: 60

{
 value : { "Name":"Cosby","Age":"13","Description":"OK" }
}

Cependant j'obtiens cette erreur :

{"Message":"La demande de l'entité des médias de type 'text/plain' n'est pas pris en charge pour cette ressource.","ExceptionMessage":"Pas de MediaTypeFormatter est disponible à la lecture d'un objet de type "MyClass" à partir du contenu avec les médias de type 'text/plain'.","ExceptionType":"Le Système De.Net.Http.UnsupportedMediaTypeException","StackTrace":" au Système.Net.Http.HttpContentExtensions.ReadAsAsync[T](HttpContent contenu, Type de type IEnumerable1 formatters, IFormatterLogger formatterLogger, CancellationToken cancellationToken)\r\n at System.Net.Http.HttpContentExtensions.ReadAsAsync(HttpContent content, Type type, IEnumerable1 formateurs, IFormatterLogger formatterLogger, CancellationToken cancellationToken)\r\n au Système.Web.Http.ModelBinding.FormatterParameterBinding.ReadContentAsync(HttpRequestMessage demande, Type de type IEnumerable`1 formateurs, IFormatterLogger formatterLogger, CancellationToken cancellationToken)"}

Edit:

Je ne comprends pas parce qu'il semble que la méthode n'est même pas appelé. Si je debug, je vois que le constructeur est appelé et aucune autre méthode est appelée. Aucune exception n'est levée.

J'ai été sur ce problème pour beaucoup de temps maintenant. J'ai constaté que ce problème se produit généralement lorsque le Type de Contenu n'est pas réglée correctement, mais il ne semble pas être mon cas puisque la demande n'est même pas traitée.

Une idée ?

Grâce

Vous n'avez pas besoin de masquer votre numéro de port dans votre question. Nous ne savons pas où localhost est. De toute façon, vous êtes positif que vos exception se produit avec ce message? L'exception fait sonner comme vous êtes à poster un type de contenu de text/plain plutôt que application/json.

OriginalL'auteur tobiak777 | 2014-09-19