1、前言
时间飞快,转眼半年,碌碌无为,眼下就要三十而立,回想三年前的今天,我将NetworkSocket库开放到github,一直在更新与学习,不求有这个库能有多好,只求自己在过程能成长,将领悟到一些思想应用到库里面去。今天,我来给大家介绍半年前在github开放的WebApiClient这个库,正如NetworkSocket一样,它正在渐渐从渺小变得强大,从简单变得抽象、易用、可高度扩展,它将带你进入不一个和以往完全不同风格的调用http接口的世界。
2、编程风格
2.1传统调用风格
一般的,我们需要new 一个HttpClient实例,然后准备请求url、请求body的HttpContent,然后发送,等待接收,解析回复内容.....
这些都是需要一行一行代码来实现,代码里不仅表现了“做什么(What)”,而且更多表现出“如何(How)”完成工作这样的实现细节,大概想想代码像下面:
/// <summary> /// 更新用户信息 /// 使用application/json提交 /// </summary> /// <param name="user"></param> /// <returns></returns> async static Task<UserInfo> UpdateAsync(UserInfo user) { var httpClient = new HttpClient(); var serializer = new JavaScriptSerializer(); var json = serializer.Serialize(user); var content = new StringContent(json, Encoding.UTF8, "application/json"); var url = "http://localhost:9999/webapi/user/updateWithJson"; var response = await httpClient.PostAsync(url, content); var resJson = await response.Content.ReadAsStringAsync(); var resUser = serializer.Deserialize<UserInfo>(resJson); return resUser; }