0

我正在尝试获取 html 页面并希望将我的标头放入请求中。我试着做这个代码。

 WebClient client = new WebClient();
 WebHeaderCollection coll = new WebHeaderCollection() { { "user-agent", "test" } };
 client.DownloadStringCompleted += client_DownloadStringCompleted;
 string url = API_URL + pagenum;
 client.DownloadStringAsync(new Uri(url));

此代码无效,因为http://msdn.microsoft.com/en-us/library/system.net.webheadercollection.aspx没有添加功能。

client.Headers["user-agent"] = "xyz"

这也行不通。我尝试并得到错误,例如无法修改用户代理。有人可以告诉我如何解决它。

我没有看到任何可以帮助我的东西。如果这里有重复。指点我那个帖子。

4

1 回答 1

0

根据Silverlight WebHeaderCollection用户代理的文档,它被列为您无法更改的受限字段,因此似乎无法更改它。

一些常见的标头被认为是受限制的,或者直接公开(例如 Content-Type)或受系统保护,不能在 WebHeaderCollection 对象中设置或更改。任何在与 HttpWebRequest 对象关联的 WebHeaderCollection 对象中设置这些受限标头之一的尝试都会引发异常。任何在与 WebClient 对象关联的 WebHeaderCollection 对象中设置这些受限标头之一的尝试都将在稍后尝试发送 WebClient 请求时引发异常。

其中许多受限制的标头是由托管 Silverlight 应用程序的 Web 浏览器设置的。

于 2013-06-30T19:13:26.367 回答