下载微软.new webapi库 (这里使用Nuget库管理包)
1.尽量记得使用awati async 异步操作进行数据处理. 2.在使用异步的时候,尽量使用 .ConfigureAwait(false),来使异步状态解锁,防止死锁 3.在使用webapi进行数据请求的时候, 心中一定要有一个 Url 转义表.否则在发送指令的时候,特变容易出错.
初始化HttpClient类对象
这里插一句嘴: 所谓Rest服务,其实就是大家说的, 一: 定位资源位置,通过ip地址和端口对象,以及资源路径 二:通过 get post put delete 完成对应的增删改查操作.就是这样
private HttpClient client = new HttpClient(); //请求支援对象. public async Task<List<T>> GetStationResposeDataAsyncList<T>(string path) { List<T> station = null; HttpResponseMessage response = await client.GetAsync(path).ConfigureAwait(false); if (response.IsSuccessStatusCode) { station = await response.Content.ReadAsAsync<List<T>>().ConfigureAwait(false); } else { Console.WriteLine(@"响应失败..."); } return station; } 我这里是请求了一连串数据,所以这里直接做成了模板 1.注意我这里 ConfigureAwait(false). 防止死锁,这就是关键部分了. 2.接着看调用实现: SoilRequest soilRequest = new SoilRequest() { key = StationKey, stationId = StationID, startTime = starttime, endTime = endtime }; string strpath = getRequestStationTypeUrl<SoilRequest>(HttpRestClass.RequestEnum.SoilEnum, soilRequest).ToString(); Thread.Sleep(1000); List<SoilResponse> soilResponseList = new List<SoilResponse>(); soilResponseList = GetStationResposeDataAsyncList<SoilResponse>(strpath).Result; //注意这里 SoilRequest 以及 SoilResponse这两个类. SoilRequest: 这个类是对应着Rest服务后台的数据结构需要的请求格式. SoilResponse:这个类是对应Rest服务的响应数据结构, 具体需要大家自己和Rest后台对接. 以上就是数据请求和接收的主要过程了.在这个过程,大家一定要注意 发送的 指令格式 , 注意URL 的转义,不然特别容易出错.
以上就是访问Rest服务的一些关键地方, 至于修改post, delete 等操作,都是上面那个模板类的变形, 都大同小异,这个就是核心的代码了,
这里也是记录一下,以防自己以后忘记,那就不好玩了.