|
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182 |
- 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
- {
- /// <summary>
- /// 发送到API的相关操作类
- /// </summary>
- 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;
- }
- }
- }
- }
|