Je lance une HttpWebRequest en silverlight et j'essaie de lire (entre autres choses) les en-têtes de la réponse. Malheureusement, alors que je peux obtenir l'objet de la réponse (HttpWebResponse), toute tentative d'accès à la collection d'en-têtes donne lieu à une exception "not implemented". Avez-vous une idée de la façon de procéder ? Je tente d'extraire un grand jeu d'enregistrements d'Azure (~8k lignes) et j'ai besoin de vérifier l'en-tête de réponse pour le jeton de continuation.
Réponses
Trop de publicités?Grâce à @silverfighter, j'ai la réponse. Le truc était de dire à SilverLight 3 de laisser le client (.NET) gérer l'appel plutôt que le navigateur (par défaut). Une fois que vous faites cela, vous avez accès aux en-têtes de réponse à la fois via l'approche WebClient et HttWebRequest. Plus d'informations ici :
http://blogs.msdn.com/carlosfigueira/archive/2009/08/15/fault-support-in-silverlight-3.aspx http://msdn.microsoft.com/en-us/library/dd470096(VS.95).aspx http://blogs.msdn.com/silverlight_sdk/archive/2009/08/12/new-networking-stack-in-silverlight-3.aspx
El HttpWebRequest ne permet pas l'accès à la collection d'en-têtes de réponse . Utilisez plutôt le WebClient, qui expose une fonction Propriété WebResponse.Headers .
Les en-têtes de réponse ne sont pas pris en charge par le traitement Http du navigateur. Vous devez spécifier Client Http Handling avant d'appeler votre HttpHandler :
bool httpResult = WebRequest.RegisterPrefix("http://", WebRequestCreator.ClientHttp) ;
WebClient wc = nouveau WebClient() ;
wc.OpenReadCompleted += new OpenReadCompletedEventHandler(wc_OpenReadCompleted) ;
wc.OpenReadAsync(...) ;
Les en-têtes de résultat seront maintenant disponibles sur l'objet webClient dans la méthode wc_OpenReadCompleted. Jetez un coup d'oeil : http://msdn.microsoft.com/en-us/library/dd920295(v=vs.95).aspx