前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >记录C#常用的代码片段

记录C#常用的代码片段

作者头像
tandaxia
发布2018-09-27 15:40:33
6350
发布2018-09-27 15:40:33
举报
文章被收录于专栏:谈补锅谈补锅

  时间一久,常用的代码会有点忘记,还是贴在这里方便查找!

1、将信息写入文件中

代码语言:javascript
复制
//将字符串写入到文本中
        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图片对象到本地, 或者保存图片字节数组到本地

代码语言:javascript
复制
/// <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字符串,网络请求获得返回结果

代码语言:javascript
复制
/// <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;
        }

调用举例:

代码语言:javascript
复制
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;

代码语言:javascript
复制
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);
                //...
            }
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017-05-14 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档