C/S客户端Winform窗体调用WebApi接口(C# 实例)
C/S客户端Winform窗体调用WebApi接口(C# 实例)
C/S客户端Winform窗体调用WebApi接口(C# 实例)
C/S客户端的Winform窗体直接调用WebApi接口


适用开发:快速搭建移动端APP、B/S、C/S、微信小程序、公众号、Web站点等后端应用服务程序。
运行平台:Windows + .NET Framework 4.5
开发工具:Visual Studio 2017+,C#语言,ASP.NET
数据库:Microsoft SQLServer 2008R2+(支持多数据库:Oracle 11g/MySql 5.7.34)

WebApi框架:https://www.csframework.com/cs-framework-webapi.htm


C/S客户端的Winform窗体模拟APP调用WebApi接口:
C# Code:
/// <summary>
/// 数据操作请求(模拟APP端请求)
/// </summary>
/// <param name="dbid">数据账套编号</param>
/// <param name="userID">用户账号,对应用户表的Account字段</param>
/// <param name="token">令牌,登录成功后自动分配</param>
/// <param name="phone">手机号码</param>
/// <param name="actionID">接口编号、功能编号</param>
/// <param name="op">具体操作,如:Add/Delete/Edit/Query</param>
/// <param name="dataEncrypt">数据是否加密</param>
/// <returns></returns>
public static ModelRequestAction GetRequest4App(string dbid,
string userID, string token, string phone, int actionID, string op, bool dataEncrypt = true)
{
//模拟APP客户端数据
ModelRequestClientData4App M = new ModelRequestClientData4App();
M.UserID = userID;
M.Token = token;//令牌
M.IP = "127.0.0.1";
M.DeviceMID = "我的设备识别码";
M.Version = "1.928";
M.Client = "iOS";
M.Phone = phone;//手机号码
M.DBID = dbid;
string clientData = JsonConvert.SerializeObject(M, JsonSettings.Current);
string data = "{\"Key\":PO201900012345}";//传统的参数(JSON)
//实例化WebApi接口所传递的参数对象
ModelRequestAction mr = new ModelRequestAction();
mr.Action = actionID;
mr.Operation = op;
mr.ApiKey = PrivateData.apikey;
mr.Data = dataEncrypt ? CryptoHelper.DESEncrypt(data, PrivateData.DES_Key, PrivateData.DES_iv) : data;
mr.Sign = CryptoHelper.ToMD5(mr.ApiKey + mr.Data + PrivateData.secret);//Sign数字签名
mr.DataIsEncrypted = true;
mr.ClientData = clientData;
return mr;
}
//来源:C/S框架网(www.csframework.com) QQ:23404761
/// <summary>
/// 数据操作请求(模拟APP端请求)
/// </summary>
/// <param name="dbid">数据账套编号</param>
/// <param name="userID">用户账号,对应用户表的Account字段</param>
/// <param name="token">令牌,登录成功后自动分配</param>
/// <param name="phone">手机号码</param>
/// <param name="actionID">接口编号、功能编号</param>
/// <param name="op">具体操作,如:Add/Delete/Edit/Query</param>
/// <param name="dataEncrypt">数据是否加密</param>
/// <returns></returns>
public static ModelRequestAction GetRequest4App(string dbid,
string userID, string token, string phone, int actionID, string op, bool dataEncrypt = true)
{
//模拟APP客户端数据
ModelRequestClientData4App M = new ModelRequestClientData4App();
M.UserID = userID;
M.Token = token;//令牌
M.IP = "127.0.0.1";
M.DeviceMID = "我的设备识别码";
M.Version = "1.928";
M.Client = "iOS";
M.Phone = phone;//手机号码
M.DBID = dbid;
string clientData = JsonConvert.SerializeObject(M, JsonSettings.Current);
string data = "{\"Key\":PO201900012345}";//传统的参数(JSON)
//实例化WebApi接口所传递的参数对象
ModelRequestAction mr = new ModelRequestAction();
mr.Action = actionID;
mr.Operation = op;
mr.ApiKey = PrivateData.apikey;
mr.Data = dataEncrypt ? CryptoHelper.DESEncrypt(data, PrivateData.DES_Key, PrivateData.DES_iv) : data;
mr.Sign = CryptoHelper.ToMD5(mr.ApiKey + mr.Data + PrivateData.secret);//Sign数字签名
mr.DataIsEncrypted = true;
mr.ClientData = clientData;
return mr;
}
//来源:C/S框架网(www.csframework.com) QQ:23404761
Winform界面的Button.Click事件
C# Code:
private void btnPOST_Click(object sender, EventArgs e)
{
if (cmbUsers.SelectedItem == null) throw new Exception("请选择用户或登录!");
//选择一个用户实例
ModelUser user = cmbUsers.SelectedItem as ModelUser;
object o = ModelExample.GetRequest4App("WebApi_TestDB", user.Account, user.Token, user.Phone, 949494, "AddCustomer");
txtMethod.Text = "api/do/post";
txtParam.Text = JsonConvert.SerializeObject(o);
string url = txtURL.Text + txtMethod.Text;
string result = WebApiTools.Post(url, txtParam.Text);//WebApi接口请求
txtResponse.Text = result;
ModelResponse R = Newtonsoft.Json.JsonConvert.DeserializeObject<ModelResponse>(result);
ShowObject(dataGridView1, R);
MessageBox.Show("操作完成.\r\n" + R.Message);
}
//来源:C/S框架网(www.csframework.com) QQ:23404761
private void btnPOST_Click(object sender, EventArgs e)
{
if (cmbUsers.SelectedItem == null) throw new Exception("请选择用户或登录!");
//选择一个用户实例
ModelUser user = cmbUsers.SelectedItem as ModelUser;
object o = ModelExample.GetRequest4App("WebApi_TestDB", user.Account, user.Token, user.Phone, 949494, "AddCustomer");
txtMethod.Text = "api/do/post";
txtParam.Text = JsonConvert.SerializeObject(o);
string url = txtURL.Text + txtMethod.Text;
string result = WebApiTools.Post(url, txtParam.Text);//WebApi接口请求
txtResponse.Text = result;
ModelResponse R = Newtonsoft.Json.JsonConvert.DeserializeObject<ModelResponse>(result);
ShowObject(dataGridView1, R);
MessageBox.Show("操作完成.\r\n" + R.Message);
}
//来源:C/S框架网(www.csframework.com) QQ:23404761

C/S客户端的Winform窗体直接调用WebApi接口:
C# Code:
private void btnJSON_Click(object sender, EventArgs e)
{
//数据对象
ModelRequestClientData clientData = new ModelRequestClientData();
clientData.UserID = "admin";
clientData.Token = "12345123412341234";
clientData.IP = "127.0.0.1";
clientData.DBID = "WebApi_TestDB";
string jsonClientData = JsonConvert.SerializeObject(clientData);
string jsonData = "{\"Delete\":\"PO2019837300222\"}";//删除采购订单
ModelRequestAction M = new ModelRequestAction();
M.Action = int.Parse(txtAction.Text);
M.Operation = txtOP.Text;
M.ApiKey = txtApiKey.Text;
M.ClientData = jsonClientData;
//M.Data = chkEncrypt.Checked ? PrivateData.Key.Encrypt(txtData.Text) : txtData.Text;
M.Data = jsonData;
M.Sign = CryptoHelper.ToMD5(txtApiKey.Text + M.Data + txtSecretKey.Text);//数字签名,12345678=SecureKey私钥
M.DataIsEncrypted = chkEncrypt.Checked;
string json = JsonConvert.SerializeObject(M, JsonSettings.Current);
txtParam.Text = json;
}
//来源:C/S框架网(www.csframework.com) QQ:23404761
private void btnJSON_Click(object sender, EventArgs e)
{
//数据对象
ModelRequestClientData clientData = new ModelRequestClientData();
clientData.UserID = "admin";
clientData.Token = "12345123412341234";
clientData.IP = "127.0.0.1";
clientData.DBID = "WebApi_TestDB";
string jsonClientData = JsonConvert.SerializeObject(clientData);
string jsonData = "{\"Delete\":\"PO2019837300222\"}";//删除采购订单
ModelRequestAction M = new ModelRequestAction();
M.Action = int.Parse(txtAction.Text);
M.Operation = txtOP.Text;
M.ApiKey = txtApiKey.Text;
M.ClientData = jsonClientData;
//M.Data = chkEncrypt.Checked ? PrivateData.Key.Encrypt(txtData.Text) : txtData.Text;
M.Data = jsonData;
M.Sign = CryptoHelper.ToMD5(txtApiKey.Text + M.Data + txtSecretKey.Text);//数字签名,12345678=SecureKey私钥
M.DataIsEncrypted = chkEncrypt.Checked;
string json = JsonConvert.SerializeObject(M, JsonSettings.Current);
txtParam.Text = json;
}
//来源:C/S框架网(www.csframework.com) QQ:23404761
相关产品:
C#.NET WebApi开发框架-标准版V2.0
适用开发:快速搭建移动端APP、B/S、C/S、微信小程序、公众号、Web站点等后端应用服务程序。
运行平台:Windows + .NET Framework 4.5
开发工具:Visual Studio 2017+,C#语言,ASP.NET
数据库:Microsoft SQLServer 2008R2+(支持多数据库:Oracle 11g/MySql 5.7.34)
WebApi框架:https://www.csframework.com/cs-framework-webapi.htm

参考文档:
Winform调用WebApi接口实现增删改查CRUD实例源码
CSFramework.WebApi后端服务器框架:客户端调用WebApi接口方式(签名+Token令牌)
原创文章:WebApi接口开发实例,搭建和部署WebApi接口
C#.NET 后端WebApi接口搭建教程,WebApi接口开发实例
WebApiTools.cs | WebApi客户端调用Web Api接口工具类|C#源码
客户端使用HTTPGET请求调用WebApi指定FromUri参数对象模型的接口
Demo调用WebApi接口 | CSFramework.WebApi后端开发框架|C/S开发框架
C/S软件授权注册系统V3.0(Winform+WebApi+.NET8+EFCore版本)|C/S开发框架
CSFramework.WebApi后端框架提供两种接口调用方式|C/S开发框架
CSFramework.WebApi框架 | DoController | 通用接口控制器说明|C/S开发框架
WCF开发框架-客户端采用Certificate认证模式调用基于HTTPS协议的WCF接口
WCF开发框架-客户端采用Windows身份认证调用HTTPS协议WCF接口
WCF开发框架-客户端采用BASIC身份认证调用HTTPS协议WCF接口
WebApi接口请求两种常用方式:ModelRequestAction/ModelRequestToken
Web端使用VUE调用WebApi接口实现用户登录及采用Token方式数据交互
WebApi后端框架Token身份认证,Api接口Token验证
Winform调用WebApi接口实现增删改查CRUD实例源码
CSFramework.WebApi后端服务器框架:客户端调用WebApi接口方式(签名+Token令牌)
原创文章:WebApi接口开发实例,搭建和部署WebApi接口
C#.NET 后端WebApi接口搭建教程,WebApi接口开发实例
WebApiTools.cs | WebApi客户端调用Web Api接口工具类|C#源码
客户端使用HTTPGET请求调用WebApi指定FromUri参数对象模型的接口
Demo调用WebApi接口 | CSFramework.WebApi后端开发框架|C/S开发框架
C/S软件授权注册系统V3.0(Winform+WebApi+.NET8+EFCore版本)|C/S开发框架
CSFramework.WebApi后端框架提供两种接口调用方式|C/S开发框架
CSFramework.WebApi框架 | DoController | 通用接口控制器说明|C/S开发框架
WCF开发框架-客户端采用Certificate认证模式调用基于HTTPS协议的WCF接口
WCF开发框架-客户端采用Windows身份认证调用HTTPS协议WCF接口
WCF开发框架-客户端采用BASIC身份认证调用HTTPS协议WCF接口
WebApi接口请求两种常用方式:ModelRequestAction/ModelRequestToken
Web端使用VUE调用WebApi接口实现用户登录及采用Token方式数据交互
WebApi后端框架Token身份认证,Api接口Token验证
其它资料:
什么是C/S结构? | C/S框架核心组成部分 | C/S框架-WebService部署图 | C/S框架-权限管理 | C/S结构系统框架 - 5.1旗舰版介绍 | C/S结构系统框架 - 功能介绍 | C/S结构系统框架 - 产品列表 | C/S结构系统框架 - 应用展示(图) | 三层体系架构详解 | C/S架构轻量级快速开发框架 | C/S框架网客户案例 | WebApi快速开发框架 | C/S框架代码生成器 | 用户授权注册软件系统 | 版本自动升级软件 | 数据库底层应用框架 | CSFramework.CMS内容管理系统 |
什么是C/S结构? | C/S框架核心组成部分 | C/S框架-WebService部署图 | C/S框架-权限管理 | C/S结构系统框架 - 5.1旗舰版介绍 | C/S结构系统框架 - 功能介绍 | C/S结构系统框架 - 产品列表 | C/S结构系统框架 - 应用展示(图) | 三层体系架构详解 | C/S架构轻量级快速开发框架 | C/S框架网客户案例 | WebApi快速开发框架 | C/S框架代码生成器 | 用户授权注册软件系统 | 版本自动升级软件 | 数据库底层应用框架 | CSFramework.CMS内容管理系统 |
在线客服

