페이지 원본 가져오기 (페이지 인코딩 형식 자동으로 가져오기)
#region ( )
/// <summary>
/// ( ) /// <param name="url">url</param>
/// <returns> </returns>
/// </summary>
private string GetHtmlAutoEncoding(string url)
{
HttpWebRequest req = null;
HttpWebResponse resp = null;
Stream stream = null;
StreamReader read = null;
try
{
string sUrl = url;
req = (HttpWebRequest)HttpWebRequest.Create(sUrl);
req.UserAgent = "Mozilla/5.0 (Windows NT 5.2; rv:6.0) Gecko/20100101 Firefox/6.0";
req.Accept = "*/*";
req.Headers.Add("Accept-Language", "zh-cn,en-us;q=0.5");
req.ContentType = "text/xml";
req.Timeout = 20000;
resp = (HttpWebResponse)req.GetResponse();
Encoding enc = Encoding.GetEncoding(resp.CharacterSet);
string sHTML = string.Empty;
stream = resp.GetResponseStream();
if (resp.ContentEncoding.ToLower().Contains("gzip"))
{
stream = new GZipStream(stream, CompressionMode.Decompress);
read = new StreamReader(stream, enc);
sHTML = read.ReadToEnd();
}
else
{
string sChartSet = "";
read = new StreamReader(stream, enc);
sHTML = read.ReadToEnd();
Match charSetMatch = Regex.Match(sHTML, "charset=(?<code>[a-zA-Z0-9\\-]+)", RegexOptions.IgnoreCase);
sChartSet = charSetMatch.Groups["code"].Value;
//if it's not utf-8,we should redecode the html.
Regex rx = new Regex("([\u4e00-\u9fa5]{2,4})");
if (!rx.IsMatch(sHTML))
{
if (!string.IsNullOrEmpty(sChartSet.Trim()))
sHTML = Encoding.GetEncoding(sChartSet).GetString(enc.GetBytes(sHTML));
}
}
return sHTML;
}
catch
{
return "";
}
finally
{
if (resp != null)
{
resp.Close();
}
if (stream != null)
{
stream.Close();
}
if (read != null)
{
read.Close();
}
}
}
#endregion
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
제한된 크기의 디렉토리를 만드는 방법오늘 저는 장치에 공간이 없을 때 백업 중에 응용 프로그램이 어떻게 작동하는지 테스트(및 수정)하는 작업이 있습니다. 결과적으로 "남은 공간 없음"오류로 백업이 실패하면 새 파일이 없어야 합니다. 지금까지 문제를 재...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.