Pregunta

Estoy usando ChannelFactory en WCF para llamar a un servicio REST y quiero determinar si el servidor devolvió HTTP 200 o 201 en respuesta a una llamada PUT. Actualmente, la llamada es exitosa, pero no puedo determinar si mi objeto fue creado o actualizado. ¿Cómo puedo hacer esto?

¿Fue útil?

Solución

WCF está diseñado para todo tipo de canales, por lo que no es un objeto de alto nivel

Puedes acceder a él con algo como esto

factory.Endpoint.Behaviors.Add(new WebHttpBehavior());
IMyContract proxy = factory.CreateChannel();
using (OperationContextScope scope = new OperationContextScope((IContextChannel)proxy)) {
    proxy.MyMethod("Some data"));
    var responseCode = WebOperationContext.Current.IncomingResponse.StatusCode;
}
((IClientChannel)proxy).Close();
factory.Close();
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top