前言:这是我第一次写CSDN,如果有什么不对的地方麻烦指导一下

正题:不知道各位在项目中有没有遇到项目联动情况,比如其他项目的会员,可能在这边也需要使用,如果有,那么这篇文章可能对你有用

因为数据量可能存在比较多的情况,我这边定义的API接口就是带分页的,使用的MVC的开发,所以数据拿到后台在进行封装。

我这边的AccessToken设置了失效时间,失效时间和AppSecret和AccessToken以及AppID都存在数据库,所以,你们可以为了维护可以存在数据库,做一个管理页面进行维护。

废话不多说,直接上代码块

        public PagedList<ShopMemberModel> ShopMumber(int pagesize, int pageindex, string keyword, DateTime? startDate, DateTime? endDate, Config_Auth auth){using (var client = new WebClient()){//获取远端accessTokenvar accessToken = "";var pagelist = new PagedList<ShopMemberModel>();var list = new List<ShopMemberModel>();#region 先获取API的一些需要的密钥等等if (auth.ExpireDate == null || auth.ExpireDate < DateTime.Now){client.Encoding = Encoding.UTF8;string serviceAddress = AppConfig.httpS2b2C + "/home/get?&AppSecret=" + auth.AppSecret + "&AppKey=" + auth.AppID;var data = client.DownloadString(serviceAddress);var obj = JsonConvert.DeserializeObject<JObject>(data);if (obj["Status"].ToString() != "200"){pagelist.IndexNumber = -1;pagelist.Data = list;return pagelist;}accessToken = obj["Data"]["result"]["accessToken"].ToString();auth.AccessToken = accessToken;auth.RequestDate = DateTime.Parse(obj["Data"]["result"]["CreateTime"].ToString());var exdate = auth.RequestDate?.AddDays(5).AddHours(-1);auth.ExpireDate = exdate;_config_AuthService.UpdateAccessToken(auth);}accessToken = auth.AccessToken;#endregion//把URL拼装好string service = AppConfig.httpS2b2C + "/User/User_List?accessToken=" + accessToken + "&AppKey=" + auth.AppID;HttpWebRequest request = (HttpWebRequest)WebRequest.Create(service);//请求方式设置request.Method = "POST";request.ContentType = "application/json";//string strContent = string.Format(@"{""userTel"":""{0}"",""size"": ""{1}"",""page"": ""{2}""}",tel,size,page);string strContent = @"{ ""size"" : " + '"' + pagesize + '"' + ',' + '"' + "page" + '"' + ": " + '"' + pageindex + '"' + "," + '"' + "keyWord" + '"' + ": " + '"' + keyword + '"' + ',' + '"' + "registerStartDate" + '"' + ": " + '"' + startDate + '"' + "," + '"' + "registerEndDate" + '"' + ": " + '"' + endDate + '"' + "}";using (StreamWriter dataStream = new StreamWriter(request.GetRequestStream())){dataStream.Write(strContent);dataStream.Close();}HttpWebResponse response = (HttpWebResponse)request.GetResponse();string encoding = response.ContentEncoding;if (encoding == null || encoding.Length < 1){encoding = "UTF-8"; //默认编码  }StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.GetEncoding(encoding));string retString = reader.ReadToEnd();//解析josnJObject jo = JObject.Parse(retString);if (jo["Status"].ToString() != "200"){pagelist.Data = list;return pagelist;}//数据获取到本地类var membermodel = new System.Web.Script.Serialization.JavaScriptSerializer().Deserialize<MemberModel>(jo.ToString());list = membermodel.Data.result.Items;pagelist.PageIndex = membermodel.Data.result.page;pagelist.PageSize = membermodel.Data.result.size;pagelist.PageCount = membermodel.Data.result.PageCount;pagelist.RowCount = membermodel.Data.result.TotalItemCount;pagelist.PageCount = membermodel.Data.result.TotalCount;pagelist.Data = list;pagelist.IndexNumber = ((pagelist.PageIndex - 1) * pagelist.PageSize) + 1;return pagelist;}}

因为有部分的类是我自己建的,所以,字段也给各位看一下,以便参考

    public class Config_Auth : BaseEntity{public int ID { get; set; }public string AppID { get; set; }public string AppSecret { get; set; }public string AccessToken { get; set; }public DateTime? RequestDate { get; set; }public DateTime? ExpireDate { get; set; }}

返回类型

    public class PagedList<T>{/// <summary>/// 序号/// </summary>public int IndexNumber { get; set; }/// <summary>/// 页码/// </summary>public int PageIndex { get; set; }/// <summary>/// 页容量/// </summary>public int PageSize { get; set; }/// <summary>/// 总行数/// </summary>public int RowCount { get; set; }/// <summary>/// 总页数/// </summary>public int PageCount { get; set; }/// <summary>/// 分页数据/// </summary>public IList<T> Data { get; set; }}

返回类型的泛型

    public class MemberModel{public int Status { get; set; }public int usetime { get; set; }public string Message { get; set; }public ShopMemberData Data { get; set; }}public class ShopMemberData{public ShopMemberresult result { get; set; }}public class ShopMemberresult{public int page { get; set; }public int size { get; set; }public int PageCount { get; set; }public int TotalItemCount { get; set; }public int TotalCount { get; set; }public List<ShopMemberModel> Items { get; set; }}public class ShopMemberModel{public int Id { get; set; }public string UserName { get; set; }public string UserAvatar { get; set; }public string UserTel { get; set; }}

如果有不懂的可以私信小编

通过API接口获取数据至后台相关推荐

  1. 如何利用python调用API接口获取数据进行测试

    一.Python 可以使用 requests 库来调用 API 接口获取数据.以下是基本的步骤: 1.安装 requests 库 pip install requests 2.导入 requests ...

  2. 盲僧发现了华点——教你如何使用API接口获取数据

    那么先介绍一下我们的老朋友  "API" 一.API是什么 API是应用程序的开发接口,在开发程序的时候,我们有些功能可能不需要从到到位去研发,我们可以拿现有的开发出来的功能模块来 ...

  3. python调用api接口获取数据_python批量爬取NCBI基因注释并调用谷歌API批量翻译

    作者:沙雕学习小组 这里有视频教程:https://www.bilibili.com/video/av87724182 今天想实现这个功能: 差异分析得到了200多个基因(甚至更多) 我要一个一个把基 ...

  4. 拼多多商品数据如何通过api接口获取

    要从拼多多获取商品数据,可以使用拼多多提供的API接口.首先需要注册一个拼多多开放平台的开发者账号,然后创建一个应用程序,获取应用程序的app_id和app_secret,以在API请求中进行身份验证 ...

  5. 如何调用api接口获取其中的数据

    part1.API接口可以运用到的场景,主要包括以下几个方面: 1. 应用程序集成:API可以使不同的应用程序相互之间进行集成,比如将某个应用程序的数据传递给另一个应用程序,或者调用另一个应用程序的功 ...

  6. 通过API接口获取下来的数据需要怎样才能应用

    获取到API接口下来的数据之后,为了能够在自己的项目或应用中进行应用开发,需要进行一些必要的数据处理和解析,主要包括以下几个方面: 数据格式解析:数据获取下来通常是以JSON或XML等格式进行返回的, ...

  7. 「API 接口获取方法」

    在创建一个应用程序的过程中,获取数据是非常关键的一步.而通过API接口获取数据通常是最好的方式之一.那么,如何通过关键字获取API接口呢?以下是一些步骤: 1.确定你需要获取的数据类型 首先,你需要确 ...

  8. 调用API接口 获取和解析 京东按关键字搜索商品数据

    这篇文章主要介绍了如何调用API接口 获取和解析京东按关键字搜索商品数据,帮助大家更好的理解和使用API接口. 点击测试 请求示例 <?php// 请求示例 url 默认请求参数已经URL编码处 ...

  9. 怎么获取服务器接口文档,服务器接口获取数据

    服务器接口获取数据 内容精选 换一换 伸缩组是具有相同应用场景的实例的集合,是启停伸缩策略和进行伸缩活动的基本单位.伸缩组内定义了最大实例数.期望实例数.最小实例数.虚拟私有云.子网.负载均衡等信息. ...

最新文章

  1. c++采集声卡输出_耳上明珠 | 魅族双 C 耳机 — EP2C
  2. HTTP 错误 404.0 - Not Found 您要找的资源已被删除、已更名或暂时不可用。
  3. [Objective-C]OC中字典基本概念和常用方法(NSDictionary和NSMutableDictionary)
  4. Android开发者必备:推荐一款助力开发的开源APP
  5. 静态链接库编写与使用(VC6)
  6. shell基本语法和执行
  7. Maven Tomcat 部署
  8. spring mvc学习(10):eclipse的环境前maven配置
  9. Php点击更换封面,JavaScript_js实现点击图片改变页面背景图的方法,本文实例讲述了js实现点击图 - phpStudy...
  10. mysql 多条记录选择一套_2020-11-09-Mysql(练习题第一套)
  11. Mariadb升级到mysql_mariadb的版本升级方法
  12. js保存html页面的图片,html使用js截取页面保存为图片
  13. 创建ServiceArea
  14. word转pdf公式乱码_word转换pdf公式乱码怎么办
  15. WPS2019 电子表格/Excel文件保护密码忘记了?
  16. Horae开启区块链与Token经济时代的 认知革命
  17. linux u盘保护,如何解除U盘写保护状态?
  18. 解决.NET报错【80040154 没有注册类】的问题
  19. Java生成纳秒时间戳
  20. 与计算机应用相关的公告,2015全国大学生数学建模与计算机应用竞赛报名通知...

热门文章

  1. 09-jquery获取元素的尺寸
  2. 汇编语言数据传送指令之通用数据传送类指令
  3. 微信小程序组件(标签)—码虫带你飞
  4. 无法启动 Diagnostic Policy Service(服务错误 1079)的解决方案
  5. iPhone/iPad被停用怎么办 3招轻松解锁
  6. python中的complex是什么意思_Python 内置函数complex详解,pythoncomplex
  7. 看流星在夜空静静滑落—绚烂无比
  8. 华为android版本9什么意思,华为P9的手机系统是什么
  9. LDAP+LAM搭建
  10. android java 启用4g_android下4G上网卡