/// <summary> /// 获取远程文件源代码 good HttpWebRequest /// </summary> /// <param name="url">url</param> /// <param name="encoding">编码</param> /// <param name="timeout">超时时间</param> /// <returns>获取远程文件源代码 线程安全</returns> public static string GetRemoteHtmlCode2(string url, System.Text.Encoding encoding = null, int timeout = 0) { url += (url.IndexOf("?") >= 0 ? "&time=" : "?time=") + Rand.RndDateStr(); string s = ""; HttpWebResponse response = null; StreamReader stream = null; try { HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url); if (timeout > 1) request.Timeout = timeout; response = (HttpWebResponse)request.GetResponse(); stream = new StreamReader(response.GetResponseStream(), encoding.IfNull(Encoding.UTF8)); s = stream.ReadToEnd(); } catch { } finally { if (stream.IsNotNull()) stream.Close(); if (response.IsNotNull()) response.Close(); } return s; }
/// <summary> /// 获取远程文件源代码 HttpWebRequest UserAgent + Referer + AllowAutoRedirect /// </summary> /// <param name="url">url</param> /// <param name="encoding">编码</param> /// <param name="timeout">超时时间</param> /// <returns>获取远程文件源代码</returns> public static string GetRemoteHtmlCode3(string url, System.Text.Encoding encoding = null, int timeout = 0) { url += (url.IndexOf("?") >= 0 ? "&time=" : "?time=") + Rand.RndDateStr(); string s = ""; HttpWebResponse response = null; StreamReader stream = null; try { HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(url); request.AllowAutoRedirect = true; if (timeout > 1) request.Timeout = timeout; request.UserAgent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; .NET CLR 1.1.4322; .NET CLR 2.0.50727)"; request.Referer = url; response = (HttpWebResponse)request.GetResponse(); stream = new StreamReader(response.GetResponseStream(), encoding.IfNull(Encoding.UTF8)); s = stream.ReadToEnd(); } catch { } finally { if (stream.IsNotNull()) stream.Close(); if (response.IsNotNull()) response.Close(); } return s; }
private static string GetRemoteHtmlCode(string url, System.Text.Encoding encoding, int timeout = 3000) { string content = string.Empty; HttpWebResponse response = null; StreamReader stream = null; try { HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url); request.Timeout = timeout; response = (HttpWebResponse)request.GetResponse(); stream = new StreamReader(response.GetResponseStream(), encoding); content = stream.ReadToEnd(); } catch { } finally { if (stream.IsNotNull()) stream.Close(); if (response.IsNotNull()) response.Close(); } return content; }