#region 构造URL GET请求 2 /// <summary> 3 /// 获取请求的反馈信息 4 /// </summary> 5 /// <param name="url">地址</param> 6 /// <returns></returns> 7 public static string doGetRequest(string url) 8 { 9 HttpWebRequest hwRequest; 10 HttpWebResponse hwResponse; 11 12 string strResult = string.Empty; 13 try 14 { 15 hwRequest = (System.Net.HttpWebRequest)WebRequest.Create(url); 16 hwRequest.Timeout = timeout; 17 hwRequest.Method = "GET"; 18 hwRequest.ContentType = "application/x-www-form-urlencoded;charset=utf-8"; 19 } 20 catch 21 { 22 return strResult; 23 } 24 25 //get response 26 try 27 { 28 hwResponse = (HttpWebResponse)hwRequest.GetResponse(); 29 StreamReader srReader = new StreamReader(hwResponse.GetResponseStream(), Encoding.UTF8); 30 strResult = srReader.ReadToEnd(); 31 srReader.Close(); 32 hwResponse.Close(); 33 } 34 catch 35 { 36 return strResult; 37 } 38 39 return strResult; 40 } 41 #endregion
#region POST请求 2 public static string PostMethod(string url, string param) 3 { 4 byte[] data = Encoding.UTF8.GetBytes(param); 5 return doPostRequest(url, data); 6 } 7 /// <summary> 8 /// POST请求 9 /// </summary> 10 /// <param name="url">URL</param> 11 /// <param name="encoding">编码gb2312/utf8</param> 12 /// <param name="param">参数</param> 13 /// <returns>结果</returns> 14 public static string PostMethod(string url, string encoding, string param) 15 { 16 HttpWebRequest hwRequest; 17 HttpWebResponse hwResponse; 18 19 string strResult = string.Empty; 20 byte[] bData = null; 21 if (string.IsNullOrEmpty(param)) 22 { 23 int p = url.IndexOf("?"); 24 string sData = ""; 25 if (p > 0) 26 { 27 sData = url.Substring(p + 1); 28 url = url.Substring(0, p); 29 } 30 bData = Encoding.GetEncoding(encoding).GetBytes(sData); 31 32 } 33 else 34 { 35 bData = Encoding.GetEncoding(encoding).GetBytes(param); 36 } 37 try 38 { 39 ServicePointManager.Expect100Continue = false;//远程服务器返回错误: (417) Expectation failed 异常源自HTTP1.1协议的一个规范: 100(Continue) 40 hwRequest = (System.Net.HttpWebRequest)System.Net.WebRequest.Create(url); 41 hwRequest.Timeout = timeout; 42 hwRequest.Method = "POST"; 43 hwRequest.ContentType = "application/x-www-form-urlencoded"; 44 hwRequest.ContentLength = bData.Length; 45 Stream smWrite = hwRequest.GetRequestStream(); 46 smWrite.Write(bData, 0, bData.Length); 47 smWrite.Close(); 48 } 49 catch 50 { 51 return strResult; 52 } 53 //get response 54 try 55 { 56 hwResponse = (HttpWebResponse)hwRequest.GetResponse(); 57 StreamReader srReader = new StreamReader(hwResponse.GetResponseStream(), Encoding.GetEncoding(encoding)); 58 strResult = srReader.ReadToEnd(); 59 srReader.Close(); 60 hwResponse.Close(); 61 } 62 catch 63 { 64 return strResult; 65 } 66 67 return strResult; 68 } 69 #endregion
#region 访问提交创建文件 (供生成静态页面使用,无需模板) 2 /// <summary> 3 /// 访问提交创建文件 (供生成静态页面使用,无需模板) 4 /// 调用实例 Utils.CreateFileHtml("http://www.xiaomi.com", Server.MapPath("/xxx.html")); 5 /// </summary> 6 /// <param name="url">原网址</param> 7 /// <param name="createpath">生成路径</param> 8 /// <returns>true false</returns> 9 public static bool CreateFileHtml(string url, string createpath) 10 { 11 if (!string.IsNullOrEmpty(url)) 12 { 13 string result = PostMethod(url, ""); 14 if (!string.IsNullOrEmpty(result)) 15 { 16 if (string.IsNullOrEmpty(createpath)) 17 { 18 createpath = "/default.html"; 19 } 20 string filepath = createpath.Substring(createpath.LastIndexOf(@"")); 21 createpath = createpath.Substring(0, createpath.LastIndexOf(@"")); 22 if (!Directory.Exists(createpath)) 23 { 24 Directory.CreateDirectory(createpath); 25 } 26 createpath = createpath + filepath; 27 try 28 { 29 FileStream fs2 = new FileStream(createpath, FileMode.Create); 30 StreamWriter sw = new StreamWriter(fs2, System.Text.Encoding.UTF8); 31 sw.Write(result); 32 sw.Close(); 33 fs2.Close(); 34 fs2.Dispose(); 35 return true; 36 } 37 catch { return false; } 38 } 39 return false; 40 } 41 return false; 42 } 43 /// <summary> 44 /// 访问提交创建文件 (供生成静态页面使用,需要模板) 45 /// 调用实例 Utils.CreateFileHtmlByTemp(html, Server.MapPath("/xxx.html")); 46 /// </summary> 47 /// <param name="url">原网址</param> 48 /// <param name="createpath">生成路径</param> 49 /// <returns>true false</returns> 50 public static bool CreateFileHtmlByTemp(string result, string createpath) 51 { 52 if (!string.IsNullOrEmpty(result)) 53 { 54 if (string.IsNullOrEmpty(createpath)) 55 { 56 createpath = "/default.html"; 57 } 58 string filepath = createpath.Substring(createpath.LastIndexOf(@"")); 59 createpath = createpath.Substring(0, createpath.LastIndexOf(@"")); 60 if (!Directory.Exists(createpath)) 61 { 62 Directory.CreateDirectory(createpath); 63 } 64 createpath = createpath + filepath; 65 try 66 { 67 FileStream fs2 = new FileStream(createpath, FileMode.Create); 68 StreamWriter sw = new StreamWriter(fs2, new UTF8Encoding(false));//去除UTF-8 BOM 69 sw.Write(result); 70 sw.Close(); 71 fs2.Close(); 72 fs2.Dispose(); 73 return true; 74 } 75 catch { return false; } 76 } 77 return false; 78 } 79 #endregion