6

我在 silverlight 中发出 HttpWebRequest 并尝试读取(除其他外)响应中的标头。不幸的是,虽然我可以获得响应对象 (HttpWebResponse),但任何访问 Headers 集合的尝试都会导致“未实现”异常。关于如何做到这一点的任何想法?我正在尝试从 azure(约 8k 行)中提取一个大型记录集,并且需要检查响应标头中是否有延续令牌。

4

4 回答 4

5

感谢@silverfighter,我有答案了。诀窍是告诉 SilverLight 3 让客户端 (.NET) 处理调用而不是浏览器(默认设置)。完成此操作后,您可以通过 WebClient 和 HttWebRequest 方法访问响应标头。更多信息在这里:

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

于 2009-08-20T20:05:49.763 回答
1

HttpWebRequest 不允许访问响应标头集合。请改用 WebClient,它公开了WebResponse.Headers 属性

于 2009-08-14T18:27:50.443 回答
0

不幸的是,虽然该属性存在,但它同样返回未实现的异常。

我很难相信这看起来很困难......我想很多人都有相同的要求。

于 2009-08-17T17:57:59.957 回答
0

浏览器 Http 处理不支持响应标头。您必须在调用 HttpHandler 之前指定客户端 Http 处理:

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

WebClient wc = new WebClient();

wc.OpenReadCompleted += new OpenReadCompletedEventHandler(wc_OpenReadCompleted);

wc.OpenReadAsync(...);

结果头现在将在 wc_OpenReadCompleted 方法中的 webClient 对象上可用。看看: http: //msdn.microsoft.com/en-us/library/dd920295 (v=vs.95).aspx

于 2012-03-15T13:24:38.687 回答