JDCloudOCSDKNc 0.0.1

JDCloudOCSDKNc 0.0.1

JDCloud API GateWay Team 维护。



 
依赖于
JDCloudOCSDKCore~> 0.0.1
JDCloudOCSDKCommon~> 0.0.1
JDCloudOCSDKCharge~> 0.0.1
JDCloudOCSDKDisk~> 0.0.1
 

  • JDCloud API GateWay Team

JDCloud Objective-C Open API SDK

简介

  欢迎使用京东云开发者 iOS 工具套件(使用 Objective-C 语言编写)。使用京东云 iOS SDK,您无需复杂编程就可以访问京东云提供的各种服务。
  为了方便您理解 SDK 中的一些概念和参数的含义,建议在使用 SDK 之前先查看 OpenAPI 使用入门。要了解每个 API 的具体参数和含义,请参考程序注释或参考OpenAPI & SDK下具体产品线的 API 文档。

环境准备 & 编译

  • 此代码使用 XCode 10.1 编写,打开项目需要安装 10.1 以上的版本。

调用方法

  • 目前没有上传 pod,因此请手动将源代码引用到您的项目中并编译。

  • 有关使用方法,请查看项目的 JDCloudOCSDKVmTests 文件夹下的 JDCloudOCSDKVmTests.m 文件,简单的调用示例如下:

-(void)testRequestSync{
    /// init Credential
    Credential * credential = [[Credential alloc]initWithAccessKeyId:@"your jdcloud ak" secretAccessKey:@"your jdcloud sk"];
    
    /// if use internal service create this object and set client sdkEnvironment property
    SDKEnvironment* sdkEnvironment = [[SDKEnvironment alloc]initWithEndPoint:@"apigw-internal.cn-north-1.jcloudcs.com"];

    /// init client if use default environment please write like this "VmClient* vmClient = [[VmClient alloc] initWithCredential:credential]"
    VmClient* vmClient = [[VmClient alloc] initWithCredential:credential sdkEnvironment:sdkEnvironment];

    /// if set debug true  it will write debug log
    [GlobalConfig setDebug:true];

    // set httpRequestProtocol if use internal set http else do not need to set this property , default value is https
    vmClient.httpRequestProtocol = @"http";

    // create request param
    VmDescribeInstancesRequest* describeInstancesRequest = [[VmDescribeInstancesRequest alloc]initWithRegion:@"cn-north-1"];
    
    // call sync method , if you want call async method see "JDCloudOCSDKVmTests/JDCloudOCSDKVmTests.m"
    NSDictionary* result = [vmClient describeInstancesSyncWithRequest:describeInstancesRequest];

    //get response data, the result key please see client notice
    VmDescribeInstancesResponse* response = [result objectForKey:@"describeInstancesResponse"];
    NSLog(@"总条数为:%@",[[response result] totalCount]);
}
  

注意事项

  • 如果需要设置额外的头信息,例如调用已开启MFA操作保护的接口,需要传递x-jdcloud-security-token,请按如下方式操作:

    [vmClient addCustomerHeaderWithKey:@"x-jdcloud-security-token" value:@"xxx"]

  • 如果需要设置访问点,请使用异步请求,以下为示例:
    
    Credential * credential = [[Credential alloc]initWithAccessKeyId:@"ak" secretAccessKey:@"sk"];
    // set request host
    SDKEnvironment* sdkEnvironment = [[SDKEnvironment alloc]initWithEndPoint:@"apigw-internal.cn-north-1.jcloudcs.com"];
    VmClient* vmClient = [[VmClient alloc] initWithCredential:credential sdkEnvironment:sdkEnvironment];
    [GlobalConfig setDebug:true];
    VmDescribeInstancesRequest* describeInstancesRequest = [[VmDescribeInstancesRequest alloc]initWithRegion:@"cn-north-1"];
    vmClient.httpRequestProtocol = @"http";
    dispatch_semaphore_t semaphore = dispatch_semaphore_create(0);
    [vmClient describeInstancesAsyncWithRequest:describeInstancesRequest completionHandler:^(int statusCode, VmDescribeInstancesResponse * _Nullable describeInstancesResponse, NSData * _Nullable responseData, NSError * _Nullable error) {
        NSLog(@"总条数为:%@",[[describeInstancesResponse result] totalCount]);
        dispatch_semaphore_signal(semaphore);
    }];
    dispatch_semaphore_wait(semaphore, DISPATCH_TIME_FOREVER);

  • 因为iOS默认的HTTP请求超时时间为60秒(iOS6+),暂时没有添加请求超时时间设置。