using CnasSynchronousCommon; using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Net; using System.Text; using System.Web.Script.Serialization; namespace CnasSynchronusClient { /// /// 发送到API的相关操作类 /// public class SendDataOperation { public string Url { get; set; } public string Route { get; set; } public string SendMethod { get; set; } public string RequestData { get; set; } public object SendContent{ get; set; } public bool IfSuccess { get; set; } public string ErrorMessage { get; set; } public void SendData() { try { string jsonData = new JavaScriptSerializer().Serialize(SendContent); byte[] byteArray = Encoding.UTF8.GetBytes(jsonData); //3.创建请求对象,并设置相关的属性; WebRequest webRequest = WebRequest.Create(Url + Route); webRequest.Method = SendMethod; webRequest.ContentType = "application/json"; webRequest.ContentLength = byteArray.Length; //4.获取字节流对象,并向流中写入数据(请求对象和流对象关联) Stream byteStream = webRequest.GetRequestStream(); byteStream.Write(byteArray, 0, byteArray.Length); byteStream.Close(); //5.创建响应对象 WebResponse webResponse = webRequest.GetResponse(); //6.响应对应转换成http请求响应 var httpWebResponse = (HttpWebResponse)webResponse; //7.如果请求成功,则读取所有数据 if (httpWebResponse.StatusCode == HttpStatusCode.OK) { //7.1 获取返回的数据流 byteStream = webResponse.GetResponseStream(); //7.2 根据返回的数据流创建读取器 StreamReader reader = new StreamReader(byteStream, Encoding.UTF8); //7.3 读取所有数据 RequestData = reader.ReadToEnd(); IfSuccess = true; } else { IfSuccess = false; ErrorMessage = "未能成功发送请求"; } } catch (Exception ex) { IfSuccess = false; ErrorMessage = ex.Message; } } } }