6 votes

Récupérer les en-têtes de réponse dans Silverlight ?

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.

5voto

argodev Points 158

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

1voto

Jon Galloway Points 28243

0voto

argodev Points 158

Malheureusement, bien que cette propriété existe, elle renvoie également une exception non implémentée.

J'ai du mal à croire que ce soit aussi difficile que ça en a l'air... J'imagine que beaucoup ont la même exigence.

0voto

RG58 Points 26

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

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X