[英]WebClient Headers on WP8
請告訴我如何設置標題到webclient? 我嘗試這個
WebClient webClient = new WebClient();
webClient.Headers["Content-Encoding"] = "gzip";
webClient.DownloadStringCompleted += new DownloadStringCompletedEventHandler(webClient_DownloadStringCompleted);
webClient.DownloadStringAsync(new Uri("..."));
但是我收到了異常:System.Reflection.TargetInvocationException。 “操作期間發生異常,使結果無效。請檢查InnerException以獲取異常詳細信息。”
嘗試這個 ::
webClient.Headers["Accept-Encoding"] = "gzip";
甚至這個
webClient.Headers[HttpRequestHeader.AcceptEncoding] = "gzip";
我什至發現像:: WebClient在幕后使用HttpWebRequest之類的東西。 HttpWebRequest支持gzip / deflate解壓縮。 請參閱http://msdn.microsoft.com/en-us/library/system.net.httpwebrequest.automaticdecompression.aspx
但是,WebClient類不會直接公開此屬性。 因此,您必須從中派生才能在基礎HttpWebRequest上設置屬性。
class MyWebClient : WebClient
{
protected override WebRequest GetWebRequest(Uri address)
{
HttpWebRequest request = base.GetWebRequest(address) as HttpWebRequest;
request.AutomaticDecompression = DecompressionMethods.Deflate | DecompressionMethods.GZip;
return request;
}
}
希望它有用:)干杯。
Content-Encoding
標頭用於定義請求正文的編碼。 由於您要進行GET
請求,因此問題來自GET
請求不能具有主體(如異常消息所述)。 如果嘗試定義響應的編碼,則應使用Accept-Encoding
標頭。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.