欢迎使用京东云开发者 .NET 工具套件(.NET SDK)。使用京东云 .NET SDK,您无需复杂编程就可以访问京东云提供的各种服务。
为了方便您理解SDK中的一些概念和参数的含义,使用SDK前建议您先查看OpenAPI使用入门。要了解每个API的具体参数和含义,请参考程序注释或参考OpenAPI&SDK下具体产品线的API文档。
此项目使用visual studio 2017 开发,如果需要进行代码编辑、调试,推荐使用visual studio 2017 以上版本打开。
本项目使用最新的 dotnet standard 多目标框架的方法进行编译,项目使用了 .NET 3.5 、 .NET 4.0 、 .NET 4.5 和 .net standard 2.0 版本进行编译。在编译前需要安装 .NET Framework 3.5 、4.0 、4.5 的开发sdk和dotnet core 2.0 以上版本的sdk,在windows 10 操作系统下 .NET Framework 3.5 请在 启用和关闭windows功能
的控制面板勾选应用以后再安装visual studio 2017 和 .net framework 4.7 ,.dotnet core 的安装方法请查看微软官网文档。其它目标框架请在安装visual studio时候勾选或微软官方网站下载。
本项目支持在linux 下编译dotnet standard 2.0 版本的sdk,编译的脚本为项目下的linux-bulid.sh
,需要拷贝到sdk目录下运行。输出目录请查看脚本自行修改。
因目前Http调用工具类使用 在您的项目中引用需要调用的相关模块的dll 与 此dll所依赖的相关类库文件。然后按照下方调用sdk的Demo使用。 在visual studio Nuget包浏览器查找JDCloudSDK 或者使用包管理控制台输入命令 或者使用 .NET CLI 安装 您还可以下载SDK源码直接添加到项目中或者编译为DLL再引用到项目中。 SDK使用中的任何问题,欢迎您在SDK使用问题反馈页面交流 请选择自己需要使用的模块安装。 注意: 请使用包管理器将 JDCloudSDK.Core 的版本更新到0.2.8,因为0.2.7 版本在post传输数据的时候如果值内有空格会将空格处理掉导致后端发生异常 .NET SDK的调用主要分为4步: 以下是查询单个云主机实例详情的调用示例 如果需要设置额外的header,例如要调用开启了MFA操作保护的接口,需要传递x-jdcloud-security-token,则按照如下方式: 如果要读取请求response的各种信息(例如某一个header的值),可按照如下方式: 更多调用示例参考SDK使用Demo 注意: 京东云并没有提供其他下载方式,请务必使用上述官方下载方式! version 的版本号需要使用京东云产品提供的最新版本号。例如:示例中VM所使用的最新版本号可到官方提供的API 更新历史 中查询到。 每支云产品都有自己的Client,当调用该产品API时,需使用该产品的Client。例如:使用云主机的VmClient只能调用云主机(Vm)的接口;使用高可用组的AgClient只能调用高可用组(Ag)的接口。HttpClient
,如果使用.Net Framework 4.5
需要引用框架包System.Net.Http
。因HttpClient
不支持.Net Framework 3.5
且对.NetFramework 4.0
的异步支持不是很完善,所以在项目中使用了Http/jdcloud.com/cn/sdk/dotnet#sdk%E4%BD%BF%E7%94%A8%E6%96%B9%E6%B3%95" aria-hidden="true" clstag="DocsDetail|keycount|DocMiddleContentSec|sdk_5" style="cursor:pointer;text-decoration-line:none;color:#3171FF;">SDK使用方法
京东云 .NET SDK可以使用Nuget进行包管理,使用方法如下:powershell
Install-Package JDCloudSDK.Vm -Version 1.2.0.1
powershell
dotnet add package JDCloudSDK.Vm --version 1.2.0.1
powershell
Install-Package JDCloudSDK.Core -Version 0.2.8
调用SDK
1. 设置accessKey和secretKey
2. 创建Client
3. 设置请求参数
4. 执行请求得到响应
csharp
using System;
using Newtonsoft.Json;
using JDCloudSDK.Core.Auth;
using JDCloudSDK.Core.Client;
using JDCloudSDK.Core.Http;
using JDCloudSDK.Vm.Model;
using JDCloudSDK.Vm.Apis;
using JDCloudSDK.Vm.Client;
namespace JDCloudSDK.ConsoleTest
{
class Program
{
static void Main(string[ ] args)
{
/1. 设置accessKey和secretKey
string accessKeyId = "{accessKey}";
string secretAccessKey = "{secretKey}";
CredentialsProvider credentialsProvider = new StaticCredentialsProvider(accessKeyId, secretAccessKey);
/2. 创建XXXClient
VmClient vmClient = new VmClient.DefaultBuilder()
.CredentialsProvider(credentialsProvider)
.HttpRequestConfig(new HttpRequestConfig(Protocol.HTTP,10))
.Build();
/3. 设置请求参数
DescribeInstanceRequest request = new DescribeInstanceRequest();
request.RegionId="cn-north-1";
request.InstanceId="i-c0se9uju";
/4. 执行请求
var response = vmClient.DescribeInstance(request).Result;
Console.WriteLine(JsonConvert.SerializeObject(response))
Console.ReadLine();
}
}
}
csharp
vmClient.SetCustomHeader("x-jdcloud-security-token","xxx");
csharp
/1.设置accessKey和secretKey
string accessKeyId = "";
string secretAccessKey = "";
CredentialsProvider credentialsProvider = new StaticCredentialsProvider(accessKeyId, secretAccessKey);
/2.构建请求终结点配置
SDKEnvironment sdkEnvironment = new SDKEnvironment("nativecontainer.internal.cn-north-1.jdcloud-api.com");
/3.创建XXXClient
VmClient vmClient = new VmClient.DefaultBuilder()
.CredentialsProvider(credentialsProvider)
.Environment(sdkEnvironment) /指定非默认的Endpoint
.HttpRequestConfig(new HttpRequestConfig(Protocol.HTTP, 50)) / 设置请求http schema HTTP or HTTPS ,50 为超时时间默认为秒
.Build();
csharp
Dictionary<string,List<string>> headers = response.HttpResponse.Header;
if (headers.ContainsKey("headerKey")) {
List<string> headerValue = headers["headerKey"];
}
.Net
|