essayer de POST dictionnaire json à C # WCF, quand je l’invoque HTTP Response 415. Quelqu’un peut me dire ce qui ne va pas avec mon code.
classe d’object
[DataContract] public class Class1 { [DataMember] public ssortingng AccNo; [DataMember] public ssortingng CompanyName; [DataMember] public ssortingng DocDate; }
IService1.cs
[OperationContract] [WebInvoke(Method = "POST", UriTemplate = "json/PostSalesOrderData", RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json, BodyStyle = WebMessageBodyStyle.Bare)] ssortingng PostSalesOrderData(ssortingng data);
Service1.svc.cs
public ssortingng PostSalesOrderData(ssortingng data) { JavaScriptSerializer serializer = new JavaScriptSerializer(); Dictionary dict = serializer.Deserialize<Dictionary>(data); return dict["Debtor"].AccNo.ToSsortingng(); }
Détails de violon
HTTP / 1.1 415 Impossible de traiter le message car le type de contenu ‘application / json; charset = utf-8 ‘n’était pas le type attendu’ text / xml; jeu de caractères = utf-8 ‘. Serveur: Microsoft-IIS / 7.5 X-Powered-Par: ASP.NET Date: jeu, 29 nov. 2012 01:21:55 GMT Contenu-Length: 0
Le noeud final de votre service n’est pas correctement configuré pour recevoir une entrée JSON. Pour que l’atsortingbut [WebInvoke]
soit honoré, votre sharepoint terminaison doit disposer de la webHttpBinding
et doit également avoir un comportement de sharepoint terminaison de type
Un moyen simple de vous assurer qu’il est correctement configuré consiste à utiliser l’atsortingbut Factory
du fichier .svc. Quelque chose comme l’exemple ci-dessous:
<%@ ServiceHost Language="C#" Debug="true" Service="YourNamespace.YourServiceClass" Factory="System.ServiceModel.Activation.WebServiceHostFactory" %>