Récupération des HEADER Html dans une request REST/WCF

Ce petit post pour expliquer comment récupérer le UserAgent ou le host dans un behavior WCF lorsque l'on utilise en mode REST. Les headers du Message ne sont pas  les headers http envoyés par le client.

Il est cependant très facile de les voir en attaquant les properties comme nous le faisons dans la méthode GetHttpRequestMessage.
public class MyCustomDispatcher : IDispatchMessageInspector
{
   public object AfterReceiveRequest(ref Message request, IClientChannel channel,
                                                      InstanceContext instanceContext)
   {
      HttpRequestMessageProperty requestProperty = GetHttpRequestMessage(request);
      var userAgent = requestProperty.Headers["User-Agent"];
      var host = requestProperty.Headers["host"];
      return null;
   }
   public void BeforeSendReply(ref Message reply, object correlationState)
   {
   }
   private static HttpRequestMessageProperty GetHttpRequestMessage(Message requestMessage)
   {
      return (HttpRequestMessageProperty)requestMessage.Properties[HttpRequestMessageProperty.Name];
   }
}

Ajouter un commentaire

Le code HTML est affiché comme du texte et les adresses web sont automatiquement transformées.

Fil des commentaires de ce billet

Page top