(一)CloudStack生成Signature调用API(C#)
一:前言
创新互联公司专注为客户提供全方位的互联网综合服务,包含不限于网站设计制作、成都网站建设、陆河网络推广、微信小程序开发、陆河网络营销、陆河企业策划、陆河品牌公关、搜索引擎seo、人物专访、企业宣传片、企业代运营等,从售前售中售后,我们都将竭诚为您服务,您的肯定,是我们大的嘉奖;创新互联公司为所有大学生创业者提供陆河建站搭建服务,24小时服务热线:18980820575,官方网址:www.cdcxhl.com撸主刚开始尝试使用CloudStack API时; 查阅相关资料,网上基本是官方的一个版本。大多都是复制内容;没有任何帮助。且撸主是在 .NET 的框架下操作;资料更少,目前经过学习摸索 系统基本处于稳定,故将前期遇到的问题整理一二,望能对大家有所帮助。
/***************该段-官话********************/
CloudStack API 也是基于 Web Service,可以使用任何一种支持 HTTP 调用的语言(例如 Java,PHP)编写代码。
调用代码(caller)首先需要在管理服务器进行认证。目前 CloudStack 采用两种认证方式:
Session 认证:通过 login API,获得一个 JSESSIONID cookie 和一个 SESSIONKEY token。
API Key 认证。
/***************该段-官话********************/
二:撸主采用 API Key 进行认证:
1、生成Signature 之前,我们得先拥有[API Key] & [Security Key],该文主要记录Signature 加密实现,如何生成这两个Key 撸主 便不再赘述。
2、官方提供生成Signature 的语言是Perl:地址如下,可自行观摩:
https://github.com/snumano/CloudStack-API/blob/master/generate-url.pl
3、进而撸主又找到了 Python 版本:地址如下:
https://github.com/jasonhancock/cloudstack-pythonclient/blob/master/CloudStack/BaseClient.py
4、当然也少不了Java 版本的:CloudStack 开源包里应该能找到,在此撸主分享一篇帖文:
http://blog.csdn.net/rishengcsdn/article/details/38387721
三:使用C# 生成 Signature,有了以上资料,写起C# 版本的,自是得心应手,当然也有些许差异,几个问题需要注意:
1、[ApiKey] & [SecretKey] 字符串较长,切勿出错
2、参数加密时以小些形式
3、参数加密时,需要对其进行排序(以参数第一个字母为准)
4、加密前统一编码:UTF8
5、加密方式为:HmacSha1
6、加密后信息确认编码为: UTF8
7、组合字符串
四:代码实现(仅供参考,测试代码)
如:获取云主机的状态信息
参数信息:
调用地址:“http://*.*.*.*:**/client/api?”
API 名称:“listVirtualMachines”
参 数:
details=stats 状态
account=admin 操作人账号
id=**** 虚拟主机编号
API KEY:“******************”
SecretKey: “****************”
///
输出:http://*.*.*.*:**/client/api?command=listVirtualMachines&details=stats&account=admin&id=****&apikey=****&signature=****
测试执行:成功.
本文题目:(一)CloudStack生成Signature调用API(C#)
URL地址:http://scyanting.com/article/cheeop.html