HttpClient使用
以京训钉开发平台接口文档为例,使用HttpClient类请求调用其接口,对数据进行增删改查等操作。
文档地址:https://www.yuque.com/bjjnts/jxd/bo1osz using System; using System.Collections.Generic; using System.Linq; using System.Net.Http; using System.Text; using System.Threading.Tasks; using System.Web.Caching; namespace JxdService { public class JxdService { private static HttpClient httpClient; static JxdService() { httpClient = new HttpClient(); httpClient.BaseAddress = new Uri("https://openapi.bjjnts.cn"); //httpClient.DefaultRequestHeaders.Add("Authorization", "xxxxxxxx"); } public static object _tokenLocker = new object(); public static Token Token { get { lock (_tokenLocker) { var cache = new Cache(); var token = cache.Get("jxd_token") as Token; if (token == null) { token = GetToken(); cache.Insert("jxd_token", token, null, DateTime.Now.AddSeconds(token.expires_in - 10 * 60), Cache.NoSlidingExpiration); } return token; } } } /// /// 获取Token /// /// public static Token GetToken() { HttpContent content = new StringContent("{"app_key":"YGnTIDznnAdS9bYf", "app_secret":"lxFboer5sxUlpFTDpHLdLU8mlkWabLYy"}", Encoding.UTF8, "application/json"); var httpResponse = httpClient.PostAsync("/token", content).Result; var result = ""; if (httpResponse.StatusCode == System.Net.HttpStatusCode.OK) { result = httpResponse.Content.ReadAsStringAsync().Result; } if (string.IsNullOrWhiteSpace(result)) { return null; } var token = JsonHelper.Deserializer(result); return token; } /// /// 清除Token /// private static void ClearToken() { var cache = new Cache(); cache.Remove("jxd_token"); } /// /// 获取课程资源 /// /// public static List GetCoruses(CourseInfo where) { var token = Token; httpClient.DefaultRequestHeaders.Remove("Authorization"); httpClient.DefaultRequestHeaders.Add("Authorization", #34;{token.token_type} {token.access_token}"); var httpResponse = httpClient.GetAsync("/courses?title=" + where.title).Result; //校验Token是否有效 if (httpResponse.StatusCode == System.Net.HttpStatusCode.Unauthorized) { ClearToken(); return GetCoruses(where); } var result = ""; if (httpResponse.StatusCode == System.Net.HttpStatusCode.OK) { result = httpResponse.Content.ReadAsStringAsync().Result; } if (string.IsNullOrWhiteSpace(result)) { return null; } return JsonHelper.Deserializer>(result); } /// /// 获取课程资源 /// /// public static CourseInfo GetCoruse(int id) { var token = Token; httpClient.DefaultRequestHeaders.Remove("Authorization"); httpClient.DefaultRequestHeaders.Add("Authorization", #34;{token.token_type} {token.access_token}"); var httpResponse = httpClient.GetAsync(#34;/courses/{id}").Result; //校验Token是否有效 if (httpResponse.StatusCode == System.Net.HttpStatusCode.Unauthorized) { ClearToken(); return GetCoruse(id); } var result = ""; if (httpResponse.StatusCode == System.Net.HttpStatusCode.OK) { result = httpResponse.Content.ReadAsStringAsync().Result; } if (string.IsNullOrWhiteSpace(result)) { return null; } return JsonHelper.Deserializer(result); } /// /// 添加课程资源 /// /// public static CourseInfo AddCoruse(CourseVm course) { var token = Token; httpClient.DefaultRequestHeaders.Remove("Authorization"); httpClient.DefaultRequestHeaders.Add("Authorization", #34;{token.token_type} {token.access_token}"); var data = JsonHelper.SerializeObject(new { course.title, course.image, course.job_id, course.copyright_id, course.content, course.cost_price }); var httpResponse = httpClient.PostAsync("/courses", new StringContent(data, Encoding.UTF8, "application/json")).Result; //校验Token是否有效 if (httpResponse.StatusCode == System.Net.HttpStatusCode.Unauthorized) { ClearToken(); return AddCoruse(course); } var result = ""; if (httpResponse.StatusCode == System.Net.HttpStatusCode.Created) { result = httpResponse.Content.ReadAsStringAsync().Result; } if (string.IsNullOrWhiteSpace(result)) { return null; } return JsonHelper.Deserializer(result); } /// /// 修改课程 /// /// public static CourseInfo EidtCoruse(CourseVm course) { var token = Token; httpClient.DefaultRequestHeaders.Remove("Authorization"); httpClient.DefaultRequestHeaders.Add("Authorization", #34;{token.token_type} {token.access_token}"); var data = JsonHelper.SerializeObject(new { course.title, course.image, course.job_id, course.copyright_id, course.content, course.cost_price }); var httpResponse = httpClient.PutAsync(#34;/courses/{course.id}", new StringContent(data, Encoding.UTF8, "application/json")).Result; //校验Token是否有效 if (httpResponse.StatusCode == System.Net.HttpStatusCode.Unauthorized) { ClearToken(); return EidtCoruse(course); } var result = ""; if (httpResponse.StatusCode == System.Net.HttpStatusCode.OK) { result = httpResponse.Content.ReadAsStringAsync().Result; } if (string.IsNullOrWhiteSpace(result)) { return null; } return JsonHelper.Deserializer(result); } /// /// 删除课程 /// /// public static bool DelCoruse(int courseId) { var token = Token; httpClient.DefaultRequestHeaders.Remove("Authorization"); httpClient.DefaultRequestHeaders.Add("Authorization", #34;{token.token_type} {token.access_token}"); var httpResponse = httpClient.DeleteAsync(#34;/courses/{courseId}").Result; //校验Token是否有效 if (httpResponse.StatusCode == System.Net.HttpStatusCode.Unauthorized) { ClearToken(); return DelCoruse(courseId); } return httpResponse.StatusCode == System.Net.HttpStatusCode.NoContent; } } }
饿了么被超开两倍,最初的口号已经失败,准备卷土重来外卖是近几年来十分火热的一个词语,大大小小的城市中都已经可以看到黄蓝两道身影,骑着电动车,背着保温箱在大街小巷中送餐。而我们外卖经过几年前的腥风血雨,市场的大部分已经被饿了么和美团
TikTok最快将于周二起诉特朗普政府针对美国总统特朗普签署TikTok和微信禁令,美国国家公共电台(NPR)8日援引知情人士的话透露,TikTok正计划起诉特朗普政府。NPR援引一位直接参与这起即将到来的诉讼但未被授
注意!这50个互联网项目都是骗局资金盘能让人暴富,同样也能让人倾家荡产,市场二八定律不变,有人赚肯定有人亏,而且亏得永远大于赚的。随着骗局的发展,目前已从传统的资金盘转化为资金盘区块链模式,披着区块链外衣的资金盘
杨柘离职小米,加入中田体育任首席战略官,正式告别手机圈提起杨柘或许关注机圈的朋友会首先想到魅族,杨柘曾在2017年2018年担任魅族科技高级副总裁CMO,主要负责营销,并主导了魅族Pro7系列魅族15系列等产品。虽然黄章曾表示Pro7
众口难调?小米10s音质优化更新预告,K40销量强势霸榜今年年初小米发布了一款音乐手机小米10S,采用对称式立体声,而且是上下完全一样的1216线性扬声器,等效音腔1。2cc,还支持哈曼卡顿调音。实际的听感确实非常震撼,经常在一些数码博
做空机构猛打恒大如何扛?8月2日,对恒大而言又是过山车般的日子。当天,受利好消息刺激,恒大系股价集体上涨,恒腾网络的涨幅更一度高达54。68。本以为恒大已顺利走出早前被做空的阴霾,没想到几个小时候,再次收
随时约运营方及关联公司被财产保全执行涉嫌传销被冻结近600万元近日,湖北法院诉讼服务网公布一起案件,案号(2021)鄂0684执保142号原告宜城市市场监督管理局被告广东华薇文化传播有限公司,广州优品宣言生物科技有限公司,广州威弩网络科技有限
出租直销牌照等问题引国家市场监督管理总局高度关注四家直销被日前,国家市场监督管理总局下发文件通知,文件显示,近期部分直销企业通过挂靠转让股权相互交叉持股等多种方式与其他企业合作,涉嫌变相转让直销经营许可证。为进一步规范直销市场,要求各省级
苹果宣传语遭老罗吐槽坦诚直白是好的,但直白也不能太没文化了苹果公司粗犷的广告一直都是行业调抗的对象,像今年的iPhone13系列的宣传语Oh。So。Pro,中国大陆翻译过来就是强得很,而香港地区则翻译为非常Pro,台湾地区翻译为就很强。再
唯钻会选择魔星莫桑钻,追求真时尚一说起莫桑石,很多人下意识就会认为是仿钻,基于莫桑石不但和钻石外表相似到几乎一致,连莫氏硬度也仅次于钻石,就连属性也出奇相似。其实,这是一种错误的认知。作为一种一种新型培育宝石,莫
唯钻会的比利时魔星钻值得买吗?莫桑钻是天然的,也不是天然的。十九世纪后期HenriMoissan博士首次在亚利桑那陨石坑里发现了一种乌黑色闪闪发光的矿物,sic(碳化硅)才被人们得知,这种依附在陨石碎片上的矿物