【发布时间】:2017-11-13 13:05:25
【问题描述】:
我有以下网址:
https://example.com/trabajo-abogado-civil/A-Coru%25C3%25B1a-guti%25C3%25A9rrez
当我得到 html 代码时,它会返回给我:
Excepción producida: 'System.Net.WebException' en System.dll
我尝试编码为 ascii 和 UTF-8,但它总是返回异常。
private string obtenerPaginaHtml(string urlPaginaHtml)
{
try
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(urlPaginaHtml);
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
if (response.StatusCode == HttpStatusCode.OK)
{
Stream receiveStream = response.GetResponseStream();
StreamReader readStream = null;
if (response.CharacterSet == null)
{
readStream = new StreamReader(receiveStream);
}
else
{
readStream = new StreamReader(receiveStream, Encoding.GetEncoding(response.CharacterSet));
}
string data = readStream.ReadToEnd();
response.Close();
readStream.Close();
//MessageBox.Show(data);
return data;
}
else
{
return "";
}
}
catch (WebException e)
{
ThreadController.InvokeIfRequired(log_listBox, () =>
{
log_listBox.Items.Add("Error 24 HTML: " + urlPaginaHtml + ": " + e.ToString());
});
logTXT("Error 24 en " + urlPaginaHtml + ": " + e.ToString());
return "";
}
}
最终的结果是这样的:
https://example.com/trabajo-abogado-civil/A-Coruña-gutiérrez
【问题讨论】:
-
编码后的 url 在浏览器中是否有效?
-
您是否要对百分比转义的字符串进行转义?
-
System.Web.HttpUtility.HtmlDecode(str); -
您在寻找
UrlDecode吗? -
您的字符串是双重编码的。对它执行两次
UrlDecode。