记录C#常用的代码片段

时间:2022-06-25 08:34:40

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

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, , 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(""))
{
string dataStr = obj["data"].ToString();
Dictionary<string, string> dataDict = JsonConvert.DeserializeObject<Dictionary<string, string>>(dataStr);
//...
}