http基础扩展
1 public class HttpExtend 2 { 3 /// <summary> 4 /// 日志 5 /// </summary> 6 public static readonly ILog Log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); 7 8 /// <summary> 9 /// post提交 Created By ZhangQC 2016.08.23 10 /// </summary> 11 /// <param name="postUrl"></param> 12 /// <param name="paramData"></param> 13 /// <returns></returns> 14 public string PostWebRequest(string postUrl, string paramData) 15 { 16 var ret = string.Empty; 17 try 18 { 19 ServicePointManager.Expect100Continue = false;//防止407 错误 20 Encoding dataEncode = Encoding.GetEncoding("GBK"); 21 byte[] byteArray = dataEncode.GetBytes(paramData); //转化 22 23 var webReq = (HttpWebRequest)WebRequest.Create(new Uri(postUrl)); 24 webReq.Method = "POST"; 25 webReq.ContentType = "application/x-www-form-urlencoded"; 26 webReq.ContentLength = byteArray.Length; 27 28 Stream newStream = webReq.GetRequestStream(); 29 newStream.Write(byteArray, 0, byteArray.Length);//写入参数 30 newStream.Close(); 31 var response = (HttpWebResponse)webReq.GetResponse(); 32 // ReSharper disable once AssignNullToNotNullAttribute 33 var sr = new StreamReader(response.GetResponseStream(), encoding: Encoding.Default); 34 ret = sr.ReadToEnd(); 35 sr.Close(); 36 response.Close(); 37 newStream.Close(); 38 } 39 catch (Exception ex) 40 { 41 Log.ErrorFormat("Post请求出错,用于手机短信发送:{0}",ex); 42 } 43 return ret; 44 } 45 }
· .NET 依赖注入中的 Captive Dependency
· .NET Core 对象分配(Alloc)底层原理浅谈
· 聊一聊 C#异步 任务延续的三种底层玩法
· 敏捷开发:如何高效开每日站会
· 为什么 .NET8线程池 容易引发线程饥饿
· 终于决定:把自己家的能源管理系统开源了!
· C#实现 Winform 程序在系统托盘显示图标 & 开机自启动
· 了解 ASP.NET Core 中的中间件
· 实现windows下简单的自动化窗口管理
· 深入解析 Spring AI 系列:以OpenAI与Moonshot案例为例寻找共同点