当前位置: 首页 > news >正文

青岛做网站企业排名志鸿优化网

青岛做网站企业排名,志鸿优化网,聊城专业做网站的公司,深圳龙华高级中学Winform程序调用WebApi的方式有很多,本文学习并记录采用HttpClient调用基于GET、POST请求的WebApi的基本方式。WebApi使用之前编写的检索环境检测数据的接口,如下图所示。 调用基于GET请求的无参数WebApi 创建HttpClient实例后调用GetStringAsync函数获…

  Winform程序调用WebApi的方式有很多,本文学习并记录采用HttpClient调用基于GET、POST请求的WebApi的基本方式。WebApi使用之前编写的检索环境检测数据的接口,如下图所示。
在这里插入图片描述

调用基于GET请求的无参数WebApi

  创建HttpClient实例后调用GetStringAsync函数获取返回json字符串,如果返回的是基本数据,则按需调用格式转换函数将转换返回字符串格式,主要代码如下所示:

string url = @"http://localhost:5098/ECData/ECDataCount";
HttpClient client = new HttpClient();
int result = Convert.ToInt32(client.GetStringAsync(url).Result);

  如果返回复杂数据格式,则需预定义数据类,然后调用反序列化函数将返回的json字符串反序列化为指定数据类型的实例对象。需注意的是返回的json字符串中的属性名称的大小写与数据类定义中的属性名称大小写的对应关系。本文测试时使用System.Text.Json反序列化,并配置JsonSerializerOptions忽略大小写。主要代码如下所示:

 string url = @"http://localhost:5098/ECData/ECDatas";HttpClient client = new HttpClient();string result = client.GetStringAsync(url).Result;JsonSerializerOptions options = new JsonSerializerOptions();options.PropertyNameCaseInsensitive = true;List< EnvironmentRecord> lstRecords= JsonSerializer.Deserialize<List<EnvironmentRecord>>(result, options);
调用基于GET请求的带参数WebApi

  调用基于GET请求的带参数WebApi,其请求参数基本都是附在url最后传递到服务端,此时调用webapi的方式和上一小节一致,如下所示:

string url = @"http://localhost:5098/ECData/List?page=1";
HttpClient client = new HttpClient();
string result = client.GetStringAsync(url).Result;
JsonSerializerOptions options = new JsonSerializerOptions();
options.PropertyNameCaseInsensitive = true;
ListFuncResult lstRecords = JsonSerializer.Deserialize<ListFuncResult>(result, options);
调用基于POST请求的带参数WebApi(通过url传递参数)

  调用基于Post请求的带参数WebApi,如果请求参数通过url传递,则调用webapi的方式和上一小节一致,仅调用函数变为PostAsync。主要代码如下所示:

string url = @"http://localhost:5098/ECData/DataTableListByPost?page=1&limit=10";
HttpClient client = new HttpClient();
string result = client.PostAsync(url,null).Result.Content.ReadAsStringAsync().Result;
JsonSerializerOptions options = new JsonSerializerOptions();
options.PropertyNameCaseInsensitive = true;
DataTableFuncResult lstRecords = JsonSerializer.Deserialize<DataTableFuncResult>(result, options);
调用基于POST请求的带参数WebApi(通过请求体传递参数)

  通过请求体传递参数的话,需先将参数序列化为字符串,然后创建StringContent对象保存字符串,最终调用PostAsync发送post请求。主要代码如下所示:

string url = @"http://localhost:5098/ECData/DataTableListByPostPlus";
HttpClient client = new HttpClient();QueryCondition condition = new QueryCondition();
condition.page = 1;
condition.limit = 10;var content = new StringContent(JsonSerializer.Serialize<QueryCondition>(condition), Encoding.UTF8);
content.Headers.Remove("Content-Type");
content.Headers.Add("Content-Type", "application/json");string result = client.PostAsync(url, content).Result.Content.ReadAsStringAsync().Result;
JsonSerializerOptions options = new JsonSerializerOptions();
options.PropertyNameCaseInsensitive = true;
DataTableFuncResult lstRecords = JsonSerializer.Deserialize<DataTableFuncResult>(result, options);

参考文献:
[1]https://blog.csdn.net/yanzean/article/details/126860942
[2]https://blog.csdn.net/lg_2_lr/article/details
[3]https://www.cnblogs.com/rengke2002/p/7921003.html

http://www.hotlads.com/news/4153.html

相关文章:

  • 做web网站如何做选择日历佛山做网站建设
  • c 做网站源码实例收录好的网站有哪些
  • 烟台网站建设价格营销推广48个方法
  • 中国建设教育协会官方网站查品牌活动策划
  • 南山商城网站建设哪家公司靠谱国际新闻稿件
  • 江苏网站推广公司哪家好一键生成网页
  • 射洪做网站app软件开发制作公司
  • 十大赚钱小程序关键词seo排名优化软件
  • 无锡优化网站费用网页设计首页制作
  • 大连鼎信网站建设公司seo网络推广招聘
  • 如何做微信小程序?网站seo怎么操作
  • phpstudy做网站运营的坏处百度seo推广怎么做
  • 企业网站备案所需材料 amp外国网站的浏览器
  • 南京自适应网站搜狗seo排名软件
  • 手机 dns 国外网站百度云官网登录入口
  • 张家界做网站公司推广产品的方式有哪些
  • 做外贸没有网站需要注意什么条件促销活动推广语言
  • 网站内外链怎么做泉州百度广告
  • 宁波网站优化方案岳阳seo快速排名
  • 西装定制百度seo服务方案
  • 浙江温州乐清优化关键词排名外包
  • 网站建设标准流程seo关键词优化技巧
  • 电子商务网站系统建设进度安排自己怎样开网站
  • 游戏后端开发seo指导
  • 动易网站模板线上推广网络公司
  • 免费空间的个人网站汉川seo推广
  • 做网站每年需要购买域名吗免费域名注册官网
  • 那些网站可以上传自己做的视频如何制作网站教程
  • 哪个网站可以做全网推广上海网站快速排名优化
  • 电商网站开发人员结构兰州网络推广优化怎样