J'appelle donc un webservice wcf en utilisant Rest WebHttp. J'ai également mis en place une deuxième liaison mex pour les tests. Ma méthode fonctionne mais quand j'essaye de tester via un fiddler ou un httppost direct via une application cliente, j'obtiens une erreur de requête 400 Bad. Je passe plusieurs contrats de données à la méthode. Cela 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 de test pour l'essayer et la même erreur. Voici mon code: Toutes mes autres méthodes fonctionnent avec un contrat de données mais celui-ci où j'en ai deux ne fonctionne pas. Je crois que le problème est dans le XML au bas de ce post, il doit être emballé mais je ne sais pas comment l'envelopper.WCF Rest Mutliple DataContracts Wrapped
[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>
Salut Darrel, merci beaucoup pour les conseils et m'a indiqué quelques bons posts. Je l'ai à travailler, je gardais les espaces de noms comme « » mais mes méthodes se passaient un et m en tant que noms de paramater de sorte que les œuvres suivantes maintenant: \t jenglish \t TreeTop \t jenglish \t –
Carter
@Carter Bonne chance. Vous en aurez besoin ;-) –