記錄C#常用的代碼片段

  時間一久,常用的代碼會有點忘記,還是貼在這裏方便查找!

1、將信息寫入文件中

//將字符串寫入到文本中
        void writeToText(string msg)
        {
            try
            {
                msg = DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss") + " : " + msg;
                string fileUrl = HttpContext.Server.MapPath("~/unionpayLog.txt");
                
                System.IO.FileStream fs = new System.IO.FileStream(fileUrl, System.IO.FileMode.Append);
                System.IO.StreamWriter sw = new System.IO.StreamWriter(fs);
                sw.WriteLine(msg);
                sw.Close();
                fs.Close();
            }
            catch (Exception ex) { }
        }

2、保存Bitmap圖片對象到本地, 或者保存圖片字節數組到本地

/// <summary>
        /// 保存圖片到本地
        /// </summary>
        /// <param name="bmp"></param>
        /// <returns>返回圖片名字</returns>
        public static string SaveImageByBitmap(Bitmap bmp)
        {
            if (bmp == null) return "";

            string imgName = Guid.NewGuid().ToString() + ".jpg";
            string localImgPath = LocalImageFolder() + "\\" + imgName;

            using (bmp)
            {
                using (MemoryStream stream = new MemoryStream())
                {
                    bmp.Save(stream, System.Drawing.Imaging.ImageFormat.Jpeg);
                    byte[] bytes = stream.ToArray();

                    FileStream fs = new FileStream(localImgPath, FileMode.Create);
                    BinaryWriter bw = new BinaryWriter(fs);
                    bw.Write(bytes);
                    bw.Close();
                    fs.Close();
                }
            }

            return imgName;
        }

        /// <summary>
        /// 保存圖片字節數組到本地
        /// </summary>
        /// <param name="bytes"></param>
        /// <returns></returns>
        public static string SaveImageByBytes(byte[] bytes)
        {
            string imgName = Guid.NewGuid().ToString() + ".jpg";
            string localImgPath = LocalImageFolder() + "\\" + imgName;

            FileStream fs = new FileStream(localImgPath, FileMode.Create);
            BinaryWriter bw = new BinaryWriter(fs);
            bw.Write(bytes);
            bw.Close();
            fs.Close();
            return imgName;
        }

        /// <summary>
        /// 獲取本地圖片路徑
        /// </summary>
        /// <returns></returns>
        public static string LocalImageFolder()
        {
            string dirPath = Directory.GetCurrentDirectory() + "\\tempImages";

            if (!Directory.Exists(dirPath))
            {
                Directory.CreateDirectory(dirPath);
            }

            return dirPath;
        }

3、網絡請求: 傳入json字符串,網絡請求獲得返回結果

/// <summary>
        /// post請求
        /// </summary>
        /// <param name="url">請求服務器接口</param>
        /// <param name="paramString">參數字符串</param>
        /// <param name="result">服務器返回結果字符串</param>
        /// <returns></returns>
        public static bool HttpPostRequest(string url, string paramString, ref string result)
        {
            HttpWebRequest request = null;
           
            //如果是發送HTTPS請求  
            if (url.StartsWith("https", StringComparison.OrdinalIgnoreCase))
            {
                //ServicePointManager.ServerCertificateValidationCallback = new RemoteCertificateValidationCallback(CheckValidationResult);
                request = WebRequest.Create(url) as HttpWebRequest;
                //request.ProtocolVersion = HttpVersion.Version10;
            }
            else
            {
                request = WebRequest.Create(url) as HttpWebRequest;
            }
            request.Method = "POST";
            request.ContentType = "application/json;charset=utf-8";
            //request.Headers.Add("Authorization", User.currentUser.token);
            request.Headers.Add("Accept-Encoding", "gzip");

            //設置代理UserAgent和超時
            //request.UserAgent = userAgent;
            //request.Timeout = timeout; 

            //發送POST數據  
            byte[] data = Encoding.UTF8.GetBytes(paramString);
            using (Stream stream = request.GetRequestStream())
            {
                stream.Write(data, 0, data.Length);
            }

            HttpWebResponse response;

            try
            {
                 response = request.GetResponse() as HttpWebResponse;
            }
            catch (Exception ex)
            {
                result = "error: " + ex.Message;
                return false;
            }
            
            Stream stream2 = response.GetResponseStream();   //獲取響應的字符串流
            StreamReader sr = new StreamReader(stream2); //創建一個stream讀取流
            result = sr.ReadToEnd();   //從頭讀到尾,讀取json字符串
            sr.Close();
            stream2.Close();

            return true;
        }

調用舉例:

string result = "";
            string paramsStr = "{\"userName\":\"admin\", \"password\":\"123456\"}";

            if (HttpHelper.HttpPostRequest("http://192.168.1.220:5188/user/login/in", paramsStr, ref result))
            {
                Console.WriteLine("success:" + result);
            }
            else
            {
                Console.WriteLine("請求fail:" + result);
            }

解析json字符串爲模型對象,引用Newtonsoft庫

using Newtonsoft.Json; using Newtonsoft.Json.Linq;

string jsonStr = "{\"code\":\"0000\", \"data\":{\"name\":\"xxx\", \"age\":\"xxx\"}, \"msg\":\"xxxxx\"}";
            JObject obj = JObject.Parse(jsonStr);
            string code = obj["code"].ToString();

            if (code.Equals("0000"))
            {
                string dataStr = obj["data"].ToString();
                Dictionary<string, string> dataDict = JsonConvert.DeserializeObject<Dictionary<string, string>>(dataStr);
                //...
            }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章