使用HttpWebRequest下载没有关键敏感问题的网页

使用HttpWebRequest下载没有关键敏感问题的网页

[更新:我不知道为什么,但下面的两个例子现在都可以正常工作! 最初我在第2页的例子中也看到了403。 也许是服务器问题?]

首先, WebClient更容易。 实际上, 我之前见过这个 。 在访问维基百科时,结果是url中的区分大小写; 尝试确保您在维基百科的请求中使用了相同的案例。

[更新]正如Bruno Conde和gimel观察到的那样,使用%27应该有助于使其保持一致(间歇性行为表明某些维基百科服务器可能与其他服务器配置不同)

我刚检查过,在这种情况下,案例问题似乎不是问题……但是, 如果它有效(它没有 ),这将是请求页面的最简单方法:

  using (WebClient wc = new WebClient()) { string page1 = wc.DownloadString("http://en.wikipedia.org/wiki/Algeria"); string page2 = wc.DownloadString("http://en.wikipedia.org/wiki/%27Abadilah"); } 

我担心我不知道如何处理破坏事物的主要撇号……

我也得到了奇怪的结果……首先,

http://en.wikipedia.org/wiki/'Abadilah

没有工作,经过一些失败的尝试,它开始工作。

第二个url,

http://en.wikipedia.org/wiki/'t_Zand_(Alphen-Chaam

对我来说总是失败的……

撇号似乎是造成这些问题的原因。 如果你用它替换它

%27

所有url都运行正常。

尝试使用Percent Encoding转义特殊字符(第2.1段) 。 例如,单引号在URL( IRI )中由%27表示。

我确定OP现在已经排序了,但我遇到了同样的问题 – 从维基百科通过网络客户端下载时间歇性的403。 设置用户代理标头将其排序:

 client.Headers.Add("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; .NET CLR 1.0.3705;)");