Pregunta

Así que estoy llamando a un servicio web WCF utilizando Resto WebHttp. También he creado un segundo mex de unión para la prueba. Mi método está trabajando, pero cuando trato de prueba a través violinista o recta HttpPost a través de una aplicación cliente me sale un error 400 Bad Request. Estoy pasando múltiples DataContracts al método. Me obliga a utilizar el estilo de carrocería de la envuelta, pero no sé cómo dar formato a mi xml para la prueba. He creado un método de prueba para probar esto y el mismo error. Aquí está mi código: Todos mis otros métodos funcionan con una DataContract pero éste donde tengo dos no lo hace. Creo que el problema está en el xml en la parte inferior de este post, que tiene que ajustarse, pero no sé cómo lo envuelve.

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

mi xml que estoy usando

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

No hay solución correcta

Otros consejos

Me temo que va a luchar con esto. En primer lugar, se echa en falta los espacios de nombres de serialización DataContract. DataContractSerializer es muy particular acerca de la forma en que lo quiere de XML con formato.

Hubo una pregunta simplemente recientemente de alguien tratando de hacer algo mucho más simple y estaba teniendo dificultades para conseguir WCF para aceptarla.

Aquí es una explicación de cómo dar formato a los parámetros envueltos.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top