using System; using System.Web; using System.Text; using System.Net; using System.IO; namespace WebApp { public class Utility { /// /// 读取BasicAuth Ticket /// /// public static string GetBasicAuthTicket() { cookidLoginUser m = new cookidLoginUser(); m = GetLoginUser(); if (m != null) { string cookieGuid = m.loginGuid;//登录者guid return "BasicAuth " + GetTimestamp().ToString() + "_" + cookieGuid; } else return "BasicAuth " + GetTimestamp().ToString() + "_" + "null"; } /// /// 读取登录实体 /// /// public static cookidLoginUser GetLoginUser() { HttpCookie cookies = HttpContext.Current.Request.Cookies["bthUserInfo"];//取cookie if (cookies == null) return null; cookidLoginUser m = new cookidLoginUser(); m.loginGuid = HttpUtility.UrlDecode(cookies.Values["loginGuid".ToUpper()]);//这是用户的guid m.loginAgtGuid = HttpUtility.UrlDecode(cookies.Values["loginAgtGuid".ToUpper()]); m.loginRight = HttpUtility.UrlDecode(cookies.Values["loginRight".ToUpper()]); m.loginRightList = HttpUtility.UrlDecode(cookies.Values["loginRightList".ToUpper()]); return m; } /// /// http get 读取数据 /// /// /// public static string HttpGet(string url) { Encoding encoding = Encoding.UTF8; HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url); request.Method = "GET"; request.Accept = "text/html, application/xhtml+xml, */*"; request.ContentType = "application/json"; request.Headers.Add("Authorization", GetBasicAuthTicket()); try { HttpWebResponse response = (HttpWebResponse)request.GetResponse(); using (StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.UTF8)) { return reader.ReadToEnd(); } } catch (Exception ex) { throw ex; } } /// /// /// /// /// @"{ ""mmmm"": ""89e"",""nnnnnn"": ""0101943"",""kkkkkkk"": ""e8sodijf9""}" /// public static string HttpPost(string url, string param) { string serviceAddress = url; HttpWebRequest request = (HttpWebRequest)WebRequest.Create(serviceAddress); request.Method = "POST"; request.ContentType = "application/json"; request.Headers.Add("Authorization", GetBasicAuthTicket()); string strContent = param; using (StreamWriter dataStream = new StreamWriter(request.GetRequestStream())) { dataStream.Write(strContent); dataStream.Close(); } try { HttpWebResponse response = (HttpWebResponse)request.GetResponse(); string encoding = response.ContentEncoding; if (encoding == null || encoding.Length < 1) { encoding = "UTF-8"; //默认编码 } StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.GetEncoding(encoding)); string retString = reader.ReadToEnd(); return retString; } catch (System.Net.WebException ex) { throw ex; } } /// /// 读取时间戳 /// /// /// public static double GetTimestamp() { DateTime d = DateTime.Now; TimeSpan ts = d.ToUniversalTime() - new DateTime(1970, 1, 1); return ts.TotalMilliseconds; //精确到毫秒 } /** * 向日志文件写入出错信息 * @param className 类名 * @param content 写入内容 */ public static void Error(string className, string content) { WriteLog("ERROR", className, content); } /** * 实际的写日志操作 * @param type 日志记录类型 * @param className 类名 * @param content 写入内容 */ private static void WriteLog(string type, string className, string content) { string path = HttpContext.Current.Server.MapPath("~") + "logs"; if (!Directory.Exists(path)) Directory.CreateDirectory(path); string time = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff");//获取当前系统时间 string filename = path + "/" + DateTime.Now.ToString("yyyy-MM-dd") + ".log";//用日期对日志文件命名 //创建或打开日志文件,向日志文件末尾追加记录 StreamWriter mySw = File.AppendText(filename); //向日志文件写入内容 string write_content = time + " " + type + " " + className + ": " + content; mySw.WriteLine(write_content); //关闭日志文件 mySw.Close(); } } public class cookidLoginUser { /// /// 登录者guid /// public string loginGuid { set; get; } /// /// 登录者agtGuid /// public string loginAgtGuid { set; get; } /// /// 登录者rightloginRightList /// public string loginRight { set; get; } /// /// 登录者loginRightList /// public string loginRightList { set; get; } } }