Question

Je fais appel un webservice WCF en utilisant Rest WebHttp. J'ai également mis en place une deuxième liaison pour les tests MEX. Ma méthode fonctionne, mais lorsque je tente de test à travers Fiddler ou HttpPost directement à travers une application client je reçois une erreur de demande 400 Bad. Je passe plusieurs DataContracts à la méthode. Il me force à utiliser le BodyStyle de Wrapped mais je ne sais pas comment formater mon xml pour le test. J'ai créé une méthode d'essai pour essayer cela et même erreur. Voici mon code: Toutes mes autres méthodes fonctionnent avec un DataContract mais celui-ci où j'ai deux ne fonctionne pas. Je crois que le problème est dans le fichier XML au bas de ce poste, il doit être emballé mais je ne sais pas comment l'envelopper.

[OperationContract]
[WebInvoke(Method = "POST", BodyStyle = WebMessageBodyStyle.Wrapped)]
string Test(wsAuth a, wsMed m);

[DataContract(Namespace = "")]
public class wsMed
{
 [DataMember]
 public string Test{ get; set; }
}

[DataContract(Namespace = "")]
public class wsAuth
{
 [DataMember]
 public string UserName { get; set; }
 [DataMember]
        public string Password { get; set; }
 [DataMember]
 public string DeviceId { get; set; }
}

mon xml que j'utilise

<Test>
<wsAuth>
 <DeviceId>jenglish</DeviceId>
 <Password>treetop</Password>
 <UserName>jenglish</UserName>
</wsAuth>
<wsMed>
 <Test></Test>
</wsMed>
</Test>

Pas de solution correcte

Autres conseils

Je crains que vous allez lutter avec cela. Tout d'abord, il vous manque les espaces de noms de sérialisation DataContract. Le DataContractSerializer est assez pointilleux sur la façon dont il veut son xml formated.

Il y avait une question juste récemment de quelqu'un qui essaie de faire quelque chose de beaucoup plus simple et il avait des difficultés à obtenir WCF à l'accepter.

ici est une explication de la façon de formater les paramètres enveloppées.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top