C# Web 客户端返回错误 404
C# Webclient returning error 404
我正在使用下面的脚本从 URL 中检索 HTML。
string webURL = @"https://nl.wiktionary.org/wiki/" + word.ToLower();
using (WebClient client = new WebClient())
{
string htmlCode = client.DownloadString(webURL);
}
可变词可以是任何词。如果没有检索 "word" 的 WIKI 页面,则代码以错误代码 404 结尾,而使用浏览器检索 URL 会打开一个 WIKI 页面,表示没有该项目的页面然而。
我想要的是代码总是得到 HTML,当 WIKI 页面说还没有信息时也是如此。我不想通过 try and catch 来避免错误 404。
有谁知道为什么这不适用于网络客户端?
试试这个。可以在try catch块中捕获404错误内容。
var word = Console.ReadLine();
string webURL = @"https://nl.wiktionary.org/wiki/" + word.ToLower();
using (WebClient client = new WebClient() { })
{
try
{
string htmlCode = client.DownloadString(webURL);
}
catch (WebException exception)
{
string responseText=string.Empty;
var responseStream = exception.Response?.GetResponseStream();
if (responseStream != null)
{
using (var reader = new StreamReader(responseStream))
{
responseText = reader.ReadToEnd();
}
}
Console.WriteLine(responseText);
}
}
Console.ReadLine();
因为这个 WIKI 服务器使用区分大小写的 url 映射,所以不要修改 URL 的大小写来收获(从你的代码中删除“.ToLower()”)。
例如:
小写:
https://nl.wiktionary.org/wiki/categorie:onderwerpen_in_het_nynorsk
结果:HTTP 404(未找到)
正常(未修改)情况:
https://nl.wiktionary.org/wiki/Categorie:Onderwerpen_in_het_Nynorsk
结果:HTTP 200(正常)
另外,请记住大多数(如果不是全部)WiKi 服务器(包括这个)生成自定义 404 页面,因此在浏览器中它们看起来像 "normal" 页面,但尽管如此,它们仍使用 404 http 代码。
我正在使用下面的脚本从 URL 中检索 HTML。
string webURL = @"https://nl.wiktionary.org/wiki/" + word.ToLower();
using (WebClient client = new WebClient())
{
string htmlCode = client.DownloadString(webURL);
}
可变词可以是任何词。如果没有检索 "word" 的 WIKI 页面,则代码以错误代码 404 结尾,而使用浏览器检索 URL 会打开一个 WIKI 页面,表示没有该项目的页面然而。
我想要的是代码总是得到 HTML,当 WIKI 页面说还没有信息时也是如此。我不想通过 try and catch 来避免错误 404。
有谁知道为什么这不适用于网络客户端?
试试这个。可以在try catch块中捕获404错误内容。
var word = Console.ReadLine();
string webURL = @"https://nl.wiktionary.org/wiki/" + word.ToLower();
using (WebClient client = new WebClient() { })
{
try
{
string htmlCode = client.DownloadString(webURL);
}
catch (WebException exception)
{
string responseText=string.Empty;
var responseStream = exception.Response?.GetResponseStream();
if (responseStream != null)
{
using (var reader = new StreamReader(responseStream))
{
responseText = reader.ReadToEnd();
}
}
Console.WriteLine(responseText);
}
}
Console.ReadLine();
因为这个 WIKI 服务器使用区分大小写的 url 映射,所以不要修改 URL 的大小写来收获(从你的代码中删除“.ToLower()”)。
例如:
小写:
https://nl.wiktionary.org/wiki/categorie:onderwerpen_in_het_nynorsk
结果:HTTP 404(未找到)
正常(未修改)情况:
https://nl.wiktionary.org/wiki/Categorie:Onderwerpen_in_het_Nynorsk
结果:HTTP 200(正常)
另外,请记住大多数(如果不是全部)WiKi 服务器(包括这个)生成自定义 404 页面,因此在浏览器中它们看起来像 "normal" 页面,但尽管如此,它们仍使用 404 http 代码。