
# Java SDK使用指导
MSGSMS提供Java语言的应用侧SDK供开发者使用。本文介绍Java SDK的安装和配置，及使用Java SDK调用[API参考](https://support.huaweicloud.com/api-msgsms/sms_05_0007.html)的示例，您可以参考本章节进行快速集成开发。
#### 开发前准备
- 已[注册](https://reg.huaweicloud.com/registerui/public/custom/register.html?locale=zh-cn#/register)华为账号并开通华为云，完成[企业实名认证](https://account.huaweicloud.com/usercenter/#/accountindex/realNameAuth)。
- 已具备Java开发环境 ，支持Java JDK 1.8及以上版本。
- 已获取华为云账号对应的Access Key（AK）和Secret Access Key（SK）。 请在华为云控制台"我的凭证 \> 访问密钥"页面上创建和查看您的AK/SK。具体请参见[访问密钥](https://support.huaweicloud.com/usermanual-ca/ca_01_0003.html)。
  
 
#### 安装SDK
您可以通过Maven方式获取和安装SDK，首先需要在您的操作系统中[下载](https://maven.apache.org/download.cgi)并[安装Maven](https://maven.apache.org/install.html) ，安装完成后您只需要在Java项目的pom.xml文件中加入相应的依赖项即可。
使用SDK前，您需要安装"huaweicloud-sdk-core"和"huaweicloud-sdk-msgsms"，具体的SDK版本号请参见[SDK开发中心](https://console.huaweicloud.com/apiexplorer/#/sdkcenter/MSGSMS?lang=Java)。
![](https://support.huaweicloud.com/sdkreference-msgsms/public_sys-resources/caution_3.0-zh-cn.png)
以下代码示例中的version值，请根据实际的SDK版本号进行替换。
```
<dependency>
    <groupId>com.huaweicloud.sdk</groupId>
    <artifactId>huaweicloud-sdk-core</artifactId>
    <version>3.1.11</version>
</dependency>
<dependency>
    <groupId>com.huaweicloud.sdk</groupId>
    <artifactId>huaweicloud-sdk-msgsms</artifactId>
    <version>3.1.11</version>
</dependency>
```
#### 代码示例
以调用[创建短信应用](https://support.huaweicloud.com/api-msgsms/sms_05_0023.html)接口为例，以下代码示例向您展示使用Java SDK的主要步骤：
1. 创建认证。
2. 创建MsgsmsClient实例并初始化。
3. 实例化请求对象。
4. 调用创建短信应用接口。
   ```
   package com.huaweicloud.sdk.test;
   import com.huaweicloud.sdk.core.auth.ICredential;
   import com.huaweicloud.sdk.core.auth.BasicCredentials;
   import com.huaweicloud.sdk.core.exception.ConnectionException;
   import com.huaweicloud.sdk.core.exception.RequestTimeoutException;
   import com.huaweicloud.sdk.core.exception.ServiceResponseException;
   import com.huaweicloud.sdk.msgsms.v2.region.MsgsmsRegion;
   import com.huaweicloud.sdk.msgsms.v2.*;
   import com.huaweicloud.sdk.msgsms.v2.model.*;
   public class CreateAppSolution {
       public static void main(String[] args) {
            // 认证用的ak和sk直接写到代码中有很大的安全风险，建议在配置文件或者环境变量中密文存放，使用时解密，确保安全。
           // 本示例以ak和sk保存在环境变量中为例，运行本示例前请先在本地环境中设置环境变量CLOUD_SDK_AK和CLOUD_SDK_SK。
           String ak = System.getenv("CLOUD_SDK_AK");
           String sk = System.getenv("CLOUD_SDK_SK");
           // 创建认证
           ICredential auth = new BasicCredentials()
                   .withAk(ak)
                   .withSk(sk);
     
           // 创建MsgsmsClient实例并初始化
           MsgsmsClient client = MsgsmsClient.newBuilder()
                   .withCredential(auth)
                   .withRegion(MsgsmsRegion.valueOf("cn-north-4"))
                   .build();
           // 实例化请求对象
           CreateAppRequest request = new CreateAppRequest();
           SmsAppAddReq body = new SmsAppAddReq();
           request.withBody(body);
           try {
               // 调用创建短信应用接口
               CreateAppResponse response = client.createApp(request);
               System.out.println(response.toString());
           } catch (ConnectionException e) {
               e.printStackTrace();
           } catch (RequestTimeoutException e) {
               e.printStackTrace();
           } catch (ServiceResponseException e) {
               e.printStackTrace();
               System.out.println(e.getHttpStatusCode());
               System.out.println(e.getRequestId());
               System.out.println(e.getErrorCode());
               System.out.println(e.getErrorMsg());
           }
       }
   }
   ```
   
   | 参数                                 | 说明                                                                                                                                                                                                                                                                                                            |
   |:---|:---|
   | ak                                 | 您的华为云账号访问密钥ID（Access Key ID）。                                                                                                                                                                                                                                                                                 |
   | sk                                 | 您的华为云账号秘密访问密钥（Secret Access Key）。                                                                                                                                                                                                                                                                             |
   | MsgsmsRegion.valueOf("cn-north-4") | 请替换为您要访问的MSGSMS平台所在区域，当前MSGSMS支持访问的区域，在SDK代码[MsgsmsRegion.java](https://github.com/huaweicloud/huaweicloud-sdk-java-v3/blob/master/services/msgsms/src/main/java/com/huaweicloud/sdk/msgsms/v2/region/MsgsmsRegion.java)中已经定义。 您可以在MSGSMS控制台页面左上角查看当前服务所在区域名称。 |
      
   ![](https://support.huaweicloud.com/sdkreference-msgsms/public_sys-resources/note_3.0-zh-cn.png)
   项目源码及更多详细的使用指导请参考[华为云Java软件开发工具包（Java SDK）](https://github.com/huaweicloud/huaweicloud-sdk-java-v3/blob/master/README_CN.md)。
   推荐您使用API在线调试工具[API Explorer](https://console.huaweicloud.com/apiexplorer/#/openapi/MSGSMS/doc?api=CreateApp) ，API Explorer支持快速调试和检索，调试API的同时，可以根据您的参数实时生成各种开发语言的SDK示例代码，方便您直接根据示例代码使用SDK。
   
 
