从Silverlight 3.0进行HttpRequest时,我在设置任何HTTP标头值时遇到问题?
Silverlight 3.0中是否支持HTTP标头?
以下代码在调用请求回调时抛出异常:
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
答案 0 :(得分:2)
请注意WebHeaderCollection的文档,大多数有用的标题都是受限制的,它不会列出编译指示,但它也说限制标题不限于提供的列表。
这些限制已经到位,因为底层浏览器通常会处理http请求,因此它会使用自己的算法来控制这些标头。
可以使用ClientHttp执行此操作: -
var url = new Uri("http://lonmw32795/RBSM_Portal_RESTfulWebService/HostInterrogationService.svc/host/environment");
req = (HttpWebRequest)WebRequestCreator.ClientHttp.Create(url);
请注意,您需要手动管理所需的任何Cookie,如果将Cookie设置为对使用BrowserHttp的请求的响应的一部分,则可能会有点棘手。
答案 1 :(得分:0)
简单的答案是肯定不是 - 如果你想创建一个HttpRequest,你必须使用WebRequestCreator类。
查看this博文,了解更多信息。