/// <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); }
/// <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> /// 获取远程文件源代码 WebClient DownloadData /// </summary> /// <param name="url">url</param> /// <param name="encoding">编码</param> /// <returns>获取远程文件源代码</returns> public static string GetRemoteHtmlCode4(string url, System.Text.Encoding encoding = null) { url += (url.IndexOf("?") >= 0 ? "&time=" : "?time=") + Rand.RndDateStr(); using (WebClient wc = new WebClient()) { #if !MONO40 wc.Credentials = CredentialCache.DefaultCredentials; #endif Byte[] pageData = wc.DownloadData(url); string content = encoding.IfNull(Encoding.UTF8).GetString(pageData); return(content); } }
/// <summary> /// 获取远程文件源代码 WebClient UploadData /// </summary> /// <param name="url">远程url</param> /// <param name="encoding">编码</param> /// <returns>获取远程文件源代码</returns> public static string GetRemoteHtmlCode5(string url, System.Text.Encoding encoding = null) { url += (url.IndexOf("?") >= 0 ? "&time=" : "?time=") + Rand.RndDateStr(); string postString = ""; using (WebClient webClient = new WebClient()) { webClient.Headers.Add("Content-Type", "application/x-www-form-urlencoded"); byte[] postData = Encoding.ASCII.GetBytes(postString); byte[] responseData = webClient.UploadData(url, "POST", postData); string srcString = encoding.IfNull(Encoding.UTF8).GetString(responseData); return(srcString); } }
/// <summary> /// 读取文件中的内容 线程安全 /// </summary> /// <param name="fileName">文件名</param> /// <param name="encoding">编码</param> /// <returns>读取文件中的内容</returns> public static string FileReadAll(string fileName, Encoding encoding = null) { string text = string.Empty; if (!FileDirectory.FileExists(fileName)) { return text; } using (StreamReader reader = new StreamReader(fileName, encoding.IfNull(Encoding.UTF8))) return reader.ReadToEnd(); }
/// <summary> /// 读取文件中的内容 /// </summary> /// <param name="fileName">文件名</param> /// <param name="encoding">编码</param> /// <returns>读取文件中的内容</returns> public static IList<string> FileRead(string fileName, Encoding encoding = null) { string lineText = null; IList<string> txtTextArr = new List<string>(); if (!FileDirectory.FileExists(fileName)) { return txtTextArr; } using (StreamReader reader = new StreamReader(fileName, encoding.IfNull(Encoding.UTF8))) { while ((lineText = reader.ReadLine()).IsNotNull()) txtTextArr.Add(lineText); } return txtTextArr; }
/// <summary> /// 写日志 线程安全 /// </summary> /// <param name="fileName">文件</param> /// <param name="str">消息</param> /// <param name="encoding">编码</param> private static bool WriteForFileStream(string fileName, string str, Encoding encoding = null) { bool _isTrue = false; if (encoding.IsNull()) encoding = Encoding.Default; lock (lockHelper) { using (FileStream fs = FileDirectory.FileExists(fileName) ? File.OpenWrite(fileName) : File.Create(fileName)) { byte[] bt = encoding.IfNull(Encoding.UTF8).GetBytes(str + Environment.NewLine); fs.Seek(0, SeekOrigin.End); fs.Write(bt, 0, bt.Length); _isTrue = true; } } return _isTrue; }
/// <summary> /// 写日志 线程安全 /// </summary> /// <param name="fileName">文件</param> /// <param name="str">消息</param> /// <param name="encoding">编码</param> private static bool WriteForStreamWriter(string fileName, string str, Encoding encoding = null) { bool _isTrue = false; if (encoding.IsNull()) encoding = Encoding.Default; lock (lockHelper) { using (System.IO.StreamWriter f2 = new System.IO.StreamWriter(fileName, true, encoding.IfNull(Encoding.UTF8))) { f2.WriteLine(str); _isTrue = true; } } return _isTrue; }
/// <summary> /// 到指定的URL发送一个GET请求 /// </summary> /// <param name="url">请求的URL</param> /// <param name="contentType">请求的内容类型。默认值是'application/x-www-form-urlencoded'.</param> /// <param name="credentials">使用的凭据</param> /// <returns>返回请求的数据</returns> public static string SendGet(string url, string contentType, ICredentials credentials, Encoding encoding = null) { return SendRequest(url, null, "GET", contentType, null, null, credentials, null, null, encoding.IfNull(Encoding.UTF8)); }
/// <summary> /// POST数据 /// </summary> /// <param name="url">URL</param> /// <param name="postData">数据</param> /// <param name="contentType">请求的内容类型。默认值是'application/x-www-form-urlencoded'</param> /// <param name="credentials">使用的凭据</param> /// <param name="timeout">超时</param> /// <returns>返回请求的数据</returns> public static string SendPost(string url, string postData, string contentType, ICredentials credentials, int? timeout, Encoding encoding = null) { return SendRequest(url, postData, "POST", contentType, null, null, credentials, null, timeout, encoding.IfNull(Encoding.UTF8)); }