2010-02-16 16 views
1

從Silverlight 3.0製作HttpRequest時,遇到設置任何HTTP標頭值的麻煩?您可以在Silverlight中使用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

您使用NotSupported獲得的消息文本是什麼? – AnthonyWJones

+0

如果僅在調用回調時發生異常,上述代碼如何才能拋出異常?您是否確實意味着何時調用BeginGetResponse? – AnthonyWJones

回答

0

簡單的答案是不,它不需要 - 如果你想創建一個HTTPRequest,你必須使用WebRequestCreator類。

結賬this博客文章瞭解更多信息。

+0

您的意思是說您需要使用ClientHttp才能避免使用BrowserHttp帶來的限制?我們希望人們找到他們已經問過的問題,並且答案很簡單。如果你只是給答案增加一點細節,這將有所幫助。 – AnthonyWJones

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的請求的響應。

相關問題