2009-08-14 2 views
6

Je publie un HttpWebRequest dans Silverlight et tente de lire (entre autres choses) les en-têtes dans la réponse. Malheureusement, alors que je peux obtenir l'objet de réponse (HttpWebResponse) toute tentative d'accéder à la collection Headers entraîne une exception "non implémentée". Des idées de comment faire cela? Je tente de tirer un grand jeu d'enregistrements à partir d'azur (~ 8k lignes) et j'ai besoin de vérifier l'en-tête de réponse pour le jeton de continuation.Récupérer des en-têtes de réponse dans Silverlight?

Répondre

5

Grâce à @silverfighter, j'ai la réponse. L'astuce consistait à dire à SilverLight 3 de laisser le client (.NET) gérer l'appel plutôt que le navigateur (par défaut). Une fois cela fait, vous avez accès aux en-têtes de réponse via les approches 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

0

Malheureusement, tant que cette propriété existe, elle renvoie également une exception non implémentée. J'ai du mal à croire que c'est aussi difficile que cela semble ... J'imagine que beaucoup ont la même exigence.

0

têtes de réponse ne sont pas pris en charge dans le navigateur Manipulation Http. Vous devez spécifier Handling Client Http 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ésultats seront désormais disponibles sur l'objet webClient dans la méthode wc_OpenReadCompleted. Regardez: http://msdn.microsoft.com/en-us/library/dd920295(v=vs.95).aspx

Questions connexes