C# 后台发送get,post请求及WebApi接收
后台发送get请求
1.发送带参数的get请求
/// <summary> /// 发送get请求 参数拼接在url后面 /// </summary> /// <param name="url">请求接口地址</param> /// <returns></returns> public static string HttpGet(string url) { HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url); request.Method = "GET"; //设置发送请求的类型 request.ContentType = "text/html;charset=UTF-8";// "application/json"; //设置请求超时时间 request.Timeout = 60 * 1000; HttpWebResponse response = (HttpWebResponse)request.GetResponse(); using (StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.UTF8)) { string strResult = reader.ReadToEnd(); reader.Close(); response.Close(); return strResult; } }
2.后台接收请求API
/// <summary> /// 获取站点信息 /// </summary> /// <returns></returns> [HttpGet] [Route("GetStationInfo")] public ActionResult GetStationInfo(string stationName) { List<StationInfo> station= _stationServices.GetStationList().Where(p => p.StationName == stationName).ToList(); return new JsonResult(new { code = 1000, data = station }); }
后台发送post请求
1.发送带参数的post请求
string url = "https://localhost:44319/api/Station/AddStationInfo"; StationInfo stationInfo = new StationInfo() { StationGuid = Guid.NewGuid().ToString(), StationName = "站点10", UpdateTime = DateTime.Now }; //传递json格式字符串信息 var jsonStr = JsonConvert.SerializeObject(stationInfo); var result = HttpPost(url, jsonStr); var returnData = JsonConvert.DeserializeObject<ReturnData>(result);
2.后台请求的方法
/// <summary> /// 发送post请求 参数在Body中 /// </summary> /// <param name="url">请求接口地址</param> /// <param name="json">json字符串</param> /// <returns></returns> public static string HttpPost(string url, string json) { //创建请求 HttpWebRequest request = WebRequest.Create(url) as HttpWebRequest; //请求方式为POST request.Method = "POST"; request.ContentType = "application/json"; //设置请求超时时间 request.Timeout = 60 * 1000; try { //添加post请求参数 byte[] bs = Encoding.UTF8.GetBytes(json); using (Stream reqStream = request.GetRequestStream()) { reqStream.Write(bs, 0, bs.Length); reqStream.Close(); } //发送请求并获取相应回应数据 using (HttpWebResponse response = (HttpWebResponse)request.GetResponse()) { using (StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.ASCII)) { string content = reader.ReadToEnd(); return content; } } } catch (WebException ex) { return string.Format("错误信息:{0},传输json串:{1}", ex.Message, json); } }
3.后台接收请求API
/// <summary> /// 添加站点信息 /// </summary> /// <param name="station"></param> /// <returns></returns> [HttpPost] [Route("AddStationInfo")] public ActionResult AddStationInfo(StationInfo station) { try { StationInfo stationInfo = new StationInfo(); stationInfo.StationGuid = station.StationGuid; stationInfo.StationName = station.StationName; stationInfo.UpdateTime = station.UpdateTime; string result = _stationServices.AddStation(stationInfo) > 0 ? "添加成功" : "添加失败"; return new JsonResult(new { code = 1000, data = result }); } catch (Exception ex) { return new JsonResult(new { code = 1000, data = ex.Message }); } }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律