大家好,从标题可知,这节课我们主要学习如何调用API来获取数据。通常,流程需求除了网页、桌面端应用及应用文档的数据读写操作,也有调用第三方平台的API来获取项目所需数据的场景,比如调用第三方短信平台接口发送短信,再比如客户觉得从网页端系统获取数据太慢,他要提供API接口让我们直接调用接口获取数据等等。
那么,我们该怎么实现接口调用呢?这节课,就拿汇率查询来举例跟大家说说接口调用的方法。
准备工作:
准备开发流程的电脑,请打开云扩学院链接查看云扩RPA编辑器运行的硬件&软件要求。
打开云扩官网下载编辑器并安装。
准备阿里云汇率查询-极速数据AppCode(调用前1000次免费)。
准备货币代码与货币币种对应关系表,如下图所示(图片只展示部分数据):
流程设计图示:
流程操作步骤:
- 搭建数据表
- 查询汇率条件
- HTTP请求
单个货币查询接口
汇率转换接口
https://jisuhuilv.market.alicloudapi.com/exchange/convert?amount=10&from=CNY&to=USD
货币参数为CNY及USD1. 本例中我们查询人民币兑换所有币种的汇率(调用单个货币查询接口)及人民币兑换单一币种汇率(调用汇率转换接口),根据以上URL中参数(即货币代码)可见,我们可通过判断第4步中获取的货币代码来决定接下来所要调用的API为哪个。拖入“流程决策”组件,输入判断条件: cellValue.ToString() == "CNY" 2. 如果上步操作判断为真(读取的货币代码为CNY),我们调用单个货币查询接口,拖入“HTTP请求”组件,点击“设置请求方式”并填入请求方法、URL、内容类型及头部,定义输出响应正文变量:responseBody (json格式) 3. 如果上步操作判断为假,即货币代码不是CNY,我们调用汇率转换接口,并将读取的货币代码为变量值(因为上面已经提到我们查询人民币兑换其他货币的汇率,所以URL中保留参数from=CNY货币类型),拼接在URL中: "https://jisuhuilv.market.alicloudapi.com/exchange/convert?amount=10&from=CNY&to=" + cellValue.ToString() 定义输出响应正文变量:responseBody (json格式)
- 获取数据
try
{
JObject jObject = (JObject)JsonConvert.DeserializeObject(responseBody); //JSON字符反序列化
JObject resultValue = (JObject)jObject["result"]; //获取result值
JObject list = (JObject)resultValue["list"]; //获取list值
foreach (JProperty jp in (JToken)list) //循环获取货币代码、货币类型及汇率
{
DataRow row = dt.NewRow();
row["货币代码"] = jp.Name;
JObject valueObj = (JObject)jp.Value;
row["目标货币类型"] = valueObj["name"];
row["汇率"] = valueObj["rate"];
dt.Rows.Add(row); //添加至数据表中
}
}catch(Exception ex)
{
Console.WriteLine(ex.Message);
}
2. 同理,用C#代码获取当货币代码不为CNY时的数据:
try
{
JObject jObject = (JObject)JsonConvert.DeserializeObject(responseBody); //JSON字符反序列化
JObject resultValue = (JObject)jObject["result"]; //获取result值
DataRow row = dt.NewRow(); //定义数据行
row["货币代码"] = jObject["result"]["to"]; //获取货币代码、货币类型及汇率
row["目标货币类型"] = jObject["result"]["toname"];
row["汇率"] = jObject["result"]["rate"];
dt.Rows.Add(row); //添加至数据表
}catch(Exception ex)
{
Console.WriteLine(ex.Message);
}
- 预览数据
-END- 上海云扩信息科技有限公司是全球RPA领域的创新领军者。公司以自研的云扩RPA平台为核心,致力于为各行业客户提供智能的RPA机器人产品与解决方案,通过RPA赋能,持续为客户创造价值,助力企业推进数字化转型。