argodev
argodev

Reputation: 243

Retrieve Response Headers in Silverlight?

I'm issuing a HttpWebRequest in silverlight and attempting to read (amongst other things) the headers in the response. Unfortunately, while I can get the response object (HttpWebResponse) any attempt to access the Headers collection results in a "not implemented" exception. Any ideas of how to do this? I'm attempting to pull a large recordset from azure (~8k rows) and need to check the response header for the continuation token.

Upvotes: 6

Views: 2099

Answers (4)

RG58
RG58

Reputation: 36

Response Headers are not supported in Browser Http Handling. You must specify Client Http Handling before calling your HttpHandler:

bool httpResult = WebRequest.RegisterPrefix("http://", WebRequestCreator.ClientHttp);

WebClient wc = new WebClient();

wc.OpenReadCompleted += new OpenReadCompletedEventHandler(wc_OpenReadCompleted);

wc.OpenReadAsync(...);

The result headers will now be available on webClient object in the wc_OpenReadCompleted method. Have a look at: http://msdn.microsoft.com/en-us/library/dd920295(v=vs.95).aspx

Upvotes: 0

argodev
argodev

Reputation: 243

Thanks to @silverfighter, I have the answer. The trick was to tell SilverLight 3 to let the client (.NET) handle the call rather than the browser (the default). Once you do this, you have access to the response headers both via the WebClient and HttWebRequest approaches. More information here:

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

Upvotes: 5

argodev
argodev

Reputation: 243

Unfortunately, while that property exists, it similarly returns a Not Implemented Exception.

I'm having a hard time believing that this is as difficult as it seems... I would imagine that many have the same requirement.

Upvotes: 0

Jon Galloway
Jon Galloway

Reputation: 53125

The HttpWebRequest does not permit access to the response headers collection. Use the WebClient instead, which exposes a WebResponse.Headers property.

Upvotes: 1

Related Questions