C# Can';t下载维基百科文章
我有一个基于C#控制台的应用程序(Windows10,VS2015),我想从两篇维基百科文章中下载原始文本。维基百科的URL包含UMLAUT,其中一个给我带来了一些麻烦。以下是仅用于获取web响应的代码:C# Can';t下载维基百科文章,c#,C#,我有一个基于C#控制台的应用程序(Windows10,VS2015),我想从两篇维基百科文章中下载原始文本。维基百科的URL包含UMLAUT,其中一个给我带来了一些麻烦。以下是仅用于获取web响应的代码: WebRequest.Create("https://en.wikipedia.org/wiki/Albrecht_Dürer").GetResponse(); WebRequest.Create("https://en.wikipedia.org/wiki/Dürer's_Rhinocero
WebRequest.Create("https://en.wikipedia.org/wiki/Albrecht_Dürer").GetResponse();
WebRequest.Create("https://en.wikipedia.org/wiki/Dürer's_Rhinoceros").GetResponse();
WebRequest.Create("https://en.wikipedia.org/wiki/Durer's_Rhinoceros").GetResponse();
第三个响应用于测试目的,与第二个响应相同,只是我将'u'替换为'u'。因此,第一个响应工作正常,第二个响应失败,第三个响应工作正常。起初我以为这只是乌姆劳特,但如果是这样的话,那么第一反应就行不通了。我在第二次响应中收到的错误是:
System.Net.WebException: Too many automatic redirections were attempted.
此外,当我在我的WindowsPhone8.1Silverlight项目上测试它们时,所有这三个响应都有效。有人知道发生了什么吗?您应该使用
System.Web.HttpUtility.UrlEncode()
对url进行编码。您还可以尝试使用System.Uri.EscapeDataString()
我猜单引号会带来问题。使用上述方法,应将单引号转换为
%27
您应使用System.Web.HttpUtility.UrlEncode()
对url进行编码。您还可以尝试使用System.Uri.EscapeDataString()
我猜单引号会带来问题。使用上述方法,单引号应转换为
%27
,因此我尝试了Uri.EscapeDataString()
&Uri.EscapeUriString()
,但没有成功。以下三种变体不起作用http://en.wikipedia.org/wiki/D27s_犀牛
或http://en.wikipedia.org/wiki/D%C3%BCrer's_Rhinoceros
或http%3A%2F%2Fen.wikipedia.org%2Fwiki%2FD%C3%BCrer%27s_Rhinoceros
。我也找不到System.Web.HttpUtility命名空间。@kernanb per,将System.Web.dll
引用添加到您的项目中,然后您应该能够使用System.Web
命名空间中的HttpUtility
类。我已经可以使用System.Web
命名空间了。没有HttpUtility
类。有一个Http
类,但我没有看到UrlEncode
方法。所以我尝试了Uri.EscapeDataString()
&Uri.EscapeUriString()
,但没有成功。以下三种变体不起作用http://en.wikipedia.org/wiki/D27s_犀牛
或http://en.wikipedia.org/wiki/D%C3%BCrer's_Rhinoceros
或http%3A%2F%2Fen.wikipedia.org%2Fwiki%2FD%C3%BCrer%27s_Rhinoceros
。我也找不到System.Web.HttpUtility命名空间。@kernanb per,将System.Web.dll
引用添加到您的项目中,然后您应该能够使用System.Web
命名空间中的HttpUtility
类。我已经可以使用System.Web
命名空间了。没有HttpUtility
类。有一个Http
类,但我没有看到UrlEncode
方法。我还发现后缀the_Farm_(Miró)
有效,但Mirós Chicago
失败。这似乎表明,如果同时有一个变音字符和一个倒逗号,就会出现失败。我还发现后缀the_Farm_(Miró)
起作用,但Mirós Chicago
失败。这似乎表明,如果同时存在一个变音字符和一个倒逗号,则会发生故障。