[英]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.