C#Webclient返回错误404 [英] C# Webclient returning error 404
问题描述
我正在使用以下脚本从URL检索HTML.
I'm using below script to retrieve HTML from an URL.
string webURL = @"https://nl.wiktionary.org/wiki/" + word.ToLower();
using (WebClient client = new WebClient())
{
string htmlCode = client.DownloadString(webURL);
}
可变词可以是任何词.如果没有针对单词"的WIKI页面,则代码将以代码404错误结束,而使用浏览器检索URL会打开WIKI页面,表示该项目尚无页面.
The variable word can be any word. In case there is no WIKI page for the "word" be retrieved the code is ending in error with code 404, while retrievng the URL with a browser opens a WIKI page, saying there is no page for this item yet.
我想要的是代码始终获取HTML,并且当WIKI页面显示尚无信息时也是如此.我不想尝试并避免出现错误404.
What I want is that the code always gets the HTML, also when the WIKI page says there is no info yet. I do not want to avoid the error 404 with a try and catch.
有人知道为什么它不能与Webclient一起使用吗?
Does anyone has an idea why this is not working with a Webclient?
推荐答案
尝试一下.您可以在try catch块中捕获404错误内容.
try this. You can catch the 404 error content in a try catch block.
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();
这篇关于C#Webclient返回错误404的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!