C#利用using System.Net实现Json数据提交WebAPI
/// <summary> /// 提交Json接口的数据方法 /// </summary> /// <param name="Url"></param> /// <param name="jsonParas"></param> /// <returns></returns> public string Post(string Url, string jsonParas) { string postContent = ""; string strURL = Url; //创建一个HTTP请求 HttpWebRequest request = (HttpWebRequest)WebRequest.Create(strURL); //Post请求方式 request.Method = "POST"; //内容类型 request.ContentType = "application/json;charset=UTF-8"; //设置参数,并进行URL编码 string paraUrlCoded = jsonParas;//System.Web.HttpUtility.UrlEncode(jsonParas); byte[] payload; //将Json字符串转化为字节 payload = System.Text.Encoding.UTF8.GetBytes(paraUrlCoded); //设置请求的ContentLength request.ContentLength = payload.Length; //发送请求,获得请求流 Stream writer; try { writer = request.GetRequestStream();//获取用于写入请求数据的Stream对象 } catch (Exception) { writer = null; postContent = "连接服务器失败!"; } //将请求参数写入流 writer.Write(payload, 0, payload.Length); writer.Close();//关闭请求流 // String strValue = "";//strValue为http响应所返回的字符流 HttpWebResponse response; try { //获得响应流 response = (HttpWebResponse)request.GetResponse(); } catch (WebException ex) { response = ex.Response as HttpWebResponse; } Stream s = response.GetResponseStream(); // Stream postData = Request.InputStream; StreamReader sRead = new StreamReader(s); postContent = sRead.ReadToEnd(); sRead.Close(); return postContent;//返回Json数据 }
调用示例
//写入接口参数准备 string param = string.Format("tano={0}&taType=1", detail.tano);//签名对象 string sign = Md5.md5(param, 32).ToUpper();//签名生成,具体根据接口文档 string urlResult = url + "/tenant/submitDetail?" + param; List<SubmitDetailInterface> detailInterfaces = new List<SubmitDetailInterface>(); SubmitDetailInterface detailInterface = new SubmitDetailInterface() { id = detail.id, act = detail.act, supplyBase = detail.supplyBase, amount = detail.amount, baseNo = detail.baseNo, carModel = detail.carModel, partModel = detail.partModel, partName = detail.partName, partNo = detail.partNo, prodBase = detail.prodBase, supplyName = detail.supplyName, supplyNo = detail.supplyNo, taName = detail.taName, tano = detail.tano, taType = detail.taType, updateAt = detail.updateAt, unit = detail.unit }; detailInterfaces.Add(detailInterface); string jsonParas = JsonConvert.SerializeObject(new { sign = sign, isIncrement = "1", data = detailInterfaces }); //写入 string relust = Post(urlResult, jsonParas);
CAResult cA = JsonConvert.DeserializeObject<CAResult>(relust);//返回结果
public class CAResult //返回结果接收类,根据实际情况创建 { public bool success { get; set; } public string message { get; set; } public string code { get; set; } public string result { get; set; } }
本文来自博客园,作者:CelonY,转载请注明原文链接:https://www.cnblogs.com/CelonY/p/15538711.html