
本文主要为了实现通过.NET代码请求swagger接口获取json字符串
然后解析拿到需要的数据
封装方法,GET及POST方法都兼容
- /// <param name="url">接口地址</param>
- /// <param name="token">标头</param>
- /// <param name="Type">请求方式</param>
- // token 看个人使用情况,一般get方法不需要设置token 但是设置了也不会影响查询结果
-
- public static string HttpApi(string url, string token = "", string Type = "GET", string body = null)
- {
- Encoding encoding = Encoding.UTF8;
- HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
-
-
- request.Method = Type;
- request.Accept = "text/html, application/xhtml+xml, */*";
- request.ContentType = "application/json";
- if (token != "")
- {
- request.Headers.Add("Authorization", "Bearer " + token);
- }
- if (body != null)
- {
- byte[] buffer = encoding.GetBytes(body);
- request.ContentLength = buffer.Length;
- request.GetRequestStream().Write(buffer, 0, buffer.Length);
- }
-
-
-
- HttpWebResponse response = (HttpWebResponse)request.GetResponse();
-
- using (StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.UTF8))
- {
- return reader.ReadToEnd();
- }
- }
注意:如果接口是GET请求方式,方法里面是post会请求失败,所以需要 统一接口和方法的请求方式
获取token
- public static string HttpApiToken(string url, string body)
- {
- Encoding encoding = Encoding.UTF8;
- HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
- request.Method = "POST";
- request.Accept = "text/html, application/xhtml+xml, */*";
- request.ContentType = "application/json";
-
- byte[] buffer = encoding.GetBytes(body);
- request.ContentLength = buffer.Length;
- request.GetRequestStream().Write(buffer, 0, buffer.Length);
- HttpWebResponse response = (HttpWebResponse)request.GetResponse();
- using (StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.UTF8))
- {
- return reader.ReadToEnd();
- }
- }
像encoding以及accept这些参数配置出入不大,如果本文章的不兼容可以自行修改
调用
- // 调用获取token的接口 ip地址,接口地址和后面的端口号自行修改及定义
- string logingUrl = HttpApiToken($"http://{ip}:10140/.../.../.../...", "{userName:\"admin\",password:\"111111\"}");
- dynamic response = Newtonsoft.Json.JsonConvert.DeserializeObject(logingUrl);//对象转换
- token = response.data.token;
- //调用获取json接口 和获取token出入不大
- //本文分别举例post和get两种不一样的请求方式
- //post
- string RYQYurl = $"http://{serverStr}:10140/api/Business/BaseArea/GetList";
- string data = HttpApi(RYQYurl, token, "POST", "{参数条件}");
- dynamic AreaCategoryJSON = Newtonsoft.Json.JsonConvert.DeserializeObject(data);//对象转换
- var AreaCategoryList = AreaCategoryJSON.data; //这个位置 点data和点什么看接口返回数据格式
-
- //可能单独存在data里面,也有可能是存在data里面的list里面,只需要多点一下list就可以了>。。。.data.list
- //解析
- foreach (var item in AreaCategoryList)
- {
- string name=item.name;
- //string 自定义名称=item.接口返回数据名称
- }
-
-
- //GET
- string PersonnelLocationUrl = $"http://{ip}:10140/api/Business/PersonnelLocation/GetPersonnelLocationList";
- string PersonnelLocationList = HttpApi(PersonnelLocationUrl, token, "GET");
- dynamic PersonnelLocationJSON = Newtonsoft.Json.JsonConvert.DeserializeObject(PersonnelLocationList);//对象转换
- //解析
- var PersonnelLocations = PersonnelLocationJSON.data;
- //遍历 和post一样
需要注意的是,get请求条件在路径里面 post请求在调用方法时给定的body值
ok 本章结束,谢谢观看
评价
排名
46
文章
10
粉丝
1
评论
0
ICP备案 :渝ICP备18016597号-1
网站信息:2018-2025TNBLOG.NET
技术交流:群号656732739
联系我们:contact@tnblog.net
公网安备:
50010702506256


欢迎加群交流技术