我们在开发CS架构时通常采用直接链接数据库方式获取数据,这里写下通过RestClient 向第三方接口推送数据、获取数据

准备

1.cs客户端

2.后台api接口(这里采用abp框架)

包控制台安装restsharp

一。登录

登录代码

引用 using RestSharp;

需要给api提供的参数

客户端代码

public int? UserId = null;public string AccessToken = null;//登录后获取token验证信息private void button1_Click(object sender, EventArgs e){string UserName = this.textBox1.Text;string Password = this.textBox2.Text; string errorMessage = "";var userId = login(UserName, Password, ref errorMessage);//登录    返回用户IDif (userId != null){UserId = userId;//登录成功MessageBox.Show("登录成功");}else{MessageBox.Show($"登录失败。错误原因: {errorMessage}");}}public int? login(string userName, string _password, ref string errorMessage){var client = new RestClient("http://localhost:21021/api/TokenAuth/Authenticate");//api地址var request = new RestRequest(Method.POST);//post提交方式request.AddHeader("Content-type", "application/json");request.AddJsonBody(new{userNameOrEmailAddress = userName,//提交的参数password = _password,rememberClient = true});var response = client.Execute(request);//返回信息if (response.StatusCode == HttpStatusCode.OK){try{var result = JsonConvert.DeserializeObject<dynamic>(response.Content);string strUserId;strUserId = result.result.userId;//获取返回信息中的idthis.AccessToken = result.result.accessToken;//获取token验证信息   便于访问其它接口使用return (int?)int.Parse(strUserId);}catch (Exception ex){var result = JsonConvert.DeserializeObject<dynamic>(response.Content);errorMessage = result.error.details;return null;}}else{var result = JsonConvert.DeserializeObject<dynamic>(response.Content);if (result == null){errorMessage = "无法连接到服务器。";}else{errorMessage = result.error.details;}return null;}}

获取数据

需要给api提交的参数

api返回的结果

客户端代码

private void button2_Click(object sender, EventArgs e){CreateSession(UserId);}public void CreateSession(int? userId){string url = "";var client = new RestClient($"http://localhost:21021/api/services/app/User/Get?Id={userId.ToString()}");var request = new RestRequest(Method.GET);//get提交string token = "Bearer " + this.AccessToken;client.AddDefaultHeader("Authorization", token);//附加token验证信息   登陆时获取var response = client.Execute(request);if (response.StatusCode == HttpStatusCode.OK){try{var result = JsonConvert.DeserializeObject<AbpWrapUserModel>(response.Content);var user = result.Result;Session.CreateSession(user.Id,user.UserName,user.Name,string.Join(",", user.RoleNames));textBox3.AppendText("id:"+ user.Id+"\r\n"+"name:" + user.Name + "username:" + "\r\n" + user.UserName + "\r\n" );}catch (Exception ex){throw;}}else{MessageBox.Show($"网络错误。{response.StatusCode.ToString()}");}}class AbpWrapUserModel{public UserModel Result { get; set; }public string TargetUrl { get; set; }public bool Success { get; set; }public string Error { get; set; }public bool UnAuthorizedRequest { get; set; }public bool __abp { get; set; }}class UserModel{public string UserName { get; set; }public string Name { get; set; }public string Surname { get; set; }public string EmailAddress { get; set; }public string TargetUrl { get; set; }public bool IsActive { get; set; }public string FullName { get; set; }public string LastLoginTime { get; set; }public string CreationTime { get; set; }public string[] RoleNames { get; set; }public int Id { get; set; }}public class Session{public static int UserId { get; set; }public static string 创建者用户名 { get; private set; }public static string 创建者姓名 { get; private set; }public static string 创建者角色 { get; private set; }public static string AccessToken { get; set; }public static void CreateSession(int userId,string str用户名,string str创建者姓名,string str创建者角色){UserId = userId;创建者用户名 = str用户名;创建者姓名 = str创建者姓名;创建者角色 = str创建者角色;}}

winform通过restsharp调用api接口登录及其它接口相关推荐

  1. python调用api应用接口_第三方免费快递物流查询接口平台(快递鸟)api接口调用...

    随着网购的发展,快递业也随之壮大.快递查询接口对接的需求量也越来越大,下面是对免费快递接口做的整理,并附上调用流程,分享给大家. 项目开发中,有些需求难免会用到关于快递的一些Api接口:本篇主要介绍的 ...

  2. api数据接口文档_接口文档示例(Taobao/jd/pinduoduo/开放接口调用)

    api数据接口文档_接口文档示例 本文主要是提供了一个接口文档的范文,内容修订历史.目录.时序图.接口要素描述.接口说明.使用示例.字典.FAQ.  使用MD格式文档(makedown),选择原因,容 ...

  3. 通达信接口调用API是如何实现的?

    通达信接口调用API常见应用领域是在开发股票交易接口系统时需要通达信接口系统提供的API,并且是面向A股所有股票的放接口API.那么,通达信接口调用API过程是如何实现的呢? (1)先来看看API功能 ...

  4. php如何调用mysql接口_php5 调用api接口

    XXL-HEX v1.2.0,面向对象的 WebAPI 框架 版本1.2.0新特性 1.Client端,新增Javascript版本实现:前端JS可使用提供的Client,直接调用XXL-HEX的加密 ...

  5. Java——okhttp3调用API接口

    Java--okhttp3调用API接口 官方网站 本篇以java调用有课API接口为例,签名需要以map的key进行字典排序之后进行sha1加密算法后得出.有课API文档地址:https://pos ...

  6. 如何使用java调用易班登录API获取个人账号信息(一)

    关于这篇文章: 笔者近期和小伙伴接了校方的一个小小小项目,要求使用易班APP的账号,这意味着需要调用易班官方的登录API.下面介绍使用java语言作为后端,在自己的网站如何接入易班的登录API(轻应用 ...

  7. PHP CURL 应用日记1--验证登录再调用API

    最近项目开发中需要结合旷世智能企业系统的人脸识别历史资料,提供的API中要求先验证登录COOKIE再查询历史资料,我首先分别验证了登陆API和查询资料API的可用性,单独验证的确都可以使用且查询资料的 ...

  8. Winform C#客户端调用接口方法封装

    Winform C#客户端调用接口方法封装 编码中,偶尔需要调用其他方提供的API或者其他端交互的API.封装了常用的调用的get请求与post的请求. 接口返回值为Json,复制返回值通过Visua ...

  9. 后端调用python_【后端开发】python如何调用api接口

    python调用api接口的方式: 接口协议:http.webservice.rpc等. 请求方式:get.post方式 请求参数格式: a. get请求都是通过url?param=xxx&p ...

  10. Apsara Clouder专项技能认证:实现调用API接口

    一.API 简介 1.API 的概念 API(Application Programming Interface应用程序编程接口)是一些预定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访 ...

最新文章

  1. 2021年春季学期-信号与系统-第四次作业参考答案-第六小题
  2. Cissp-【第4章 通信与网络安全】-2021-3-12(377页-392页)
  3. 1.16 项目实例:Java图书信息查询
  4. 他用科技复活传统艺术:发现甲骨文的终极浪漫
  5. III.Data Modeling and Aggregation(数据模型和整合)
  6. 微信小程序启动过程分析
  7. C# 数据库访问类源代码
  8. 过去的2014年人们在创业什么?
  9. linux查找文件内容 linux文件关键字搜索
  10. 好书推荐:创业必看好书排行榜推荐
  11. 解决h5py.h5 ImportError问题
  12. Keil4工程转keil5工程方法
  13. 剑指政企数智办公市场,通信厂商融云有何看家本领?
  14. [乐意黎原创] JavaScript中数组使用总结
  15. 计算等额本本息和等额本金的python代码
  16. to_categorical的用法
  17. 【TDengine】解决 failed to connect to server, reason: Mnode not found
  18. 背靠创新工场,创新奇智瞄准企业AI赋能,天使轮融资过亿元人民币
  19. FS5125A/FS5124 两节/三节/四节2A开关型5V-24V宽电压输入降压型锂电池充电管理方案
  20. 分享13个自学编程的优质网站

热门文章

  1. P-Called-Party-ID 头域的应用说明
  2. C - The Smallest String Concatenation CodeForces - 632C(按字典序列排列 )string或者数组
  3. mysql漏洞如何打补丁_WordPress 5.1 CSRF to RCE 漏洞详解
  4. PAT-A1025 PAT Ranking
  5. 操作系统原理-----进程同步与通信
  6. 华为鸿蒙系统和奔驰公司,华为已行动,又是一个千亿BG,奔驰已经加入
  7. python3.6 asyncio_python3.6以上 asyncio模块的异步编程模型 async await语法
  8. mysql or 速度_mysql中or和in的效率问题
  9. linux下查看文件inode,Linux下如何寻找相同文件?
  10. linux下添加定时任务