从 Silverlight 3.0 发出 HttpRequest 时,我在设置任何 HTTP header 值时遇到问题?
Silverlight 3.0 是否支持 HTTP header ?
以下代码在调用请求回调时抛出异常:
var url = new Uri("http://lonmw32795/RBSM_Portal_RESTfulWebService/HostInterrogationService.svc/host/environment");
req = (HttpWebRequest)WebRequest.Create(url);
req.Headers[HttpRequestHeader.Pragma] = "no-cache";
req.Method = "GET";
req.BeginGetResponse(new AsyncCallback(WebComplete), req);
异常类型是 System.NotSupportedException - WTF!
有人有什么想法吗?
干杯
AWC
最佳答案
请注意 WebHeaderCollection 的文档,大多数有用的 header 都受到限制,它没有列出 pragma,但它也表示受限制的 header 不限于提供的列表。
这些限制已经到位,因为底层浏览器通常会处理 http 请求,因此它会使用自己的算法控制此类 header 。
可以像这样使用 ClientHttp 来做到这一点:-
var url = new Uri("http://lonmw32795/RBSM_Portal_RESTfulWebService/HostInterrogationService.svc/host/environment");
req = (HttpWebRequest)WebRequestCreator.ClientHttp.Create(url);
请注意,您需要手动管理任何需要的 cookie,如果将 cookie 设置为对使用 BrowserHttp 的请求的响应的一部分,这可能会有点棘手。
关于silverlight - 在 Silverlight 中使用 HttpRequest 对象时可以设置 http header 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2272665/