移动网站建设机构,前端代码做招新网站,音乐图书馆网站建设,小企业做网站有用吗文章目录 前言封装好的代码测试接口测试代码 前言
微软官方有Get和Post请求#xff0c;我把他简单化处理一下
封装好的代码 public class MyHttpHelper{private string baseUrl;/// summary/// 基础Api/// /summarypublic string BaseUrl{get{return baseUr… 文章目录 前言封装好的代码测试接口测试代码 前言
微软官方有Get和Post请求我把他简单化处理一下
封装好的代码 public class MyHttpHelper{private string baseUrl;/// summary/// 基础Api/// /summarypublic string BaseUrl{get{return baseUrl;}set{baseUrl value;MyHttpClient new HttpClient(){BaseAddress new Uri(baseUrl)};}}public HttpClient MyHttpClient { get; set; }public MyHttpHelper(){}public MyHttpHelper(string baseUrl){BaseUrl baseUrl;}/// summary/// 序列化返回值/// /summary/// typeparam nameT/typeparam/// param nameapi/param/// param namestrParams/param/// returns/returnspublic async TaskT JsonHttpGetT(string api, Dictionarystring, string strParams){var res await MyHttpGet(api, strParams);return await res.Content.ReadFromJsonAsyncT();}/// summary/// 序列化返回值/// /summary/// typeparam nameT/typeparam/// param nameapi/param/// param namevalue/param/// param namestrParams/param/// returns/returnspublic async TaskT JsonHttpPostT(string api, object value, Dictionarystring, string strParams){var res await MyHttpPost(api, value, strParams);return await res.Content.ReadFromJsonAsyncT();}/// summary/// 序列化请求/// /summary/// param nameapi/param/// param nameparam/param/// returns/returnspublic async TaskHttpResponseMessage MyHttpGet(string api, Dictionarystring, string param){string paramStr DictionaryToParams(param);return await MyHttpClient.GetAsync(api paramStr);}/// summary/// 自定义的转发功能/// /summary/// param nameapi/param/// param namedataname/param/// param namevalue/param/// returns/returnspublic TaskHttpResponseMessage MyHttpPost(string api, object value, Dictionarystring, string strParams){return MyHttpClient.PostAsync(api DictionaryToParams(strParams), new StringContent(JsonConvert.SerializeObject(value), Encoding.UTF8, application/json));}/// summary/// 字典转参数/// /summary/// param nameparam/param/// returns/returnspublic string DictionaryToParams(Dictionarystring, string param){var res ;if (param ! null){var list param.ToList();if(list.Count ! 0){for (var i 0; i list.Count; i){if (i ! 0){res ;}res ${list[i].Key}{list[i].Value};}res ? res;}}return res;}}测试接口
不懂的可以自己去看一下我的这篇文章 .NET Core webapi 从零开始在IIS上面发布后端接口 实体类 public class Person{public int Id { get; set; }public string Name { get; set; }}/// summary/// 测试类/// /summary[Route(api/[controller]/[action])][ApiController]public class TestController : ControllerBase{/// summary/// 测试Num/// /summary/// param namenum/param/// returns/returns[HttpGet]public int TestNum(int num){return num;}/// summary/// 测试Post/// /summary/// param namenum/param/// returns/returns[HttpPost]public Person TestPerson(Person person){return person;}/// summary/// PersonNum/// /summary/// param namenum/param/// param nameperson/param/// returns/returns[HttpPost]public Person TestPersonNum(int num,Person person){person.Id num;return person;}}测试代码
static void Main(string[] args)
{var httpHelper new MyHttpHelper(https://localhost:7291/);Task.Run(async() {var res await httpHelper.JsonHttpGetint(/api/Test/TestNum, new Dictionarystring, string { { num, 7 } });Console.WriteLine(res);var res2 await httpHelper.JsonHttpPostPerson(/api/Test/TestPerson, new Person() { Id 4, Name 小王 }, null);Console.WriteLine(JsonConvert.SerializeObject(res2));var res3 await httpHelper.JsonHttpPostPerson(/api/Test/TestPersonNum, new Person() { Id 4, Name 小王 }, new Dictionarystring, string() { { Num, 4 } });Console.WriteLine(JsonConvert.SerializeObject(res3));});Console.WriteLine(Hello, World!);Console.ReadKey();
}