我在Silverlight中发出了一个HttpWebRequest,试图读取(除其他外)响应中的标题。不幸的是,虽然我可以获得响应对象(HttpWebResponse),但任何访问Headers集合的尝试都会导致“未实现”异常。有关如何做到这一点的任何想法?我试图从azure(~8k行)中提取大型记录集,并且需要检查延续令牌的响应头。
答案 0 :(得分: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
答案 1 :(得分:1)
HttpWebRequest does not permit access to the response headers collection。请改用WebClient,它会公开WebResponse.Headers property。
答案 2 :(得分:0)
不幸的是,虽然该属性存在,但它同样会返回一个Not Implemented Exception。
我很难相信这看起来很难......我想很多人都有同样的要求。
答案 3 :(得分:0)
浏览器Http处理不支持响应标头。 您必须在调用HttpHandler之前指定Client Http Handling:
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