Domanda

Quindi io chiamo un webservice WCF utilizzando Resto WebHttp. Ho anche creato un secondo mex vincolante per il test. Il mio metodo funziona, ma quando cerco di prova attraverso violinista o direttamente HttpPost attraverso un'applicazione client ottengo un errore di richiesta Bad 400. Sto passando più datacontracts al metodo. Mi costringe a usare il BodyStyle di avvolto, ma non so come formattare il mio xml per il test. Ho creato un metodo di prova per provare questo e lo stesso errore. Ecco il mio codice: tutti gli altri miei metodi di lavoro con una sola DataContract ma questo dove ho due non lo fa. Credo che il problema è in XML in fondo a questo post, ha bisogno di essere avvolto, ma non so come avvolgerlo.

[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; }
}

il mio xml che sto usando

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

Nessuna soluzione corretta

Altri suggerimenti

ho paura che si sta per lottare con questo. Prima di tutto, si sta perdendo gli spazi dei nomi di serializzazione DataContract. Il DataContractSerializer è piuttosto esigente su come lo vuole di xml formattato.

C'è stato un problema solo recentemente da qualcuno che cerca di fare qualcosa di molto più semplice e stava avendo difficoltà a ottenere WCF ad accettarlo.

Qui è una spiegazione di come formattare i parametri avvolti.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top