閱讀418 返回首頁    go 財經資訊


Android SDK 使用手冊__使用SDK調用已開放API_SDK_API 網關-阿裏雲

1. 前言

本文檔介紹了API網關產品Android SDK的使用方式。

該SDK適用於在移動端調用已接入API網關的私有、公開API以及目前在數據市場上售賣的API。


2. 安裝API網關 Android SDK

2.1 下載SDK

在API網關控製台左側找到SDK及示例菜單,點擊前往SDK下載頁麵。

根據頁麵提示查看使用手冊或者前往下載SDK。需要注意區分代碼示例及SDK,代碼示例適用於不準備使用SDK的用戶參考代碼完成API調用工作,而SDK可以幫助用戶簡化API調用工作。

SDK

點擊前往下載SDK鏈接後,瀏覽器會打開新頁麵,該頁麵為阿裏雲移動服務的SDK下載頁麵。在下載頁麵上勾選API網關,然後點擊下載Android版按鈕,根據頁麵提示下載到API網關的Android SDK。

download

2.2 在工程中依賴SDK

解壓下載到的SDK壓縮包,將解壓出的*.jar文件放到Android工程的指定目錄中,以Android Studio為例:

dependency

alicloud-android-apigateway-sdk-version.jar放到應用工程的libs目錄下,並在對應工程的build.gradle文件中添加如下內容:

  1. dependencies {
  2. // 添加API網關android依賴, 從下載的sdk.zip中找到jar並拷貝到當前工程的libs目錄下。根據實際文件名填寫,version僅為示意。
  3. compile files('libs/alicloud-android-apigateway-sdk-version.jar')
  4. // 添加三方HTTP請求實現,建議使用3.4.1及以上版本
  5. compile 'com.squareup.okhttp3:okhttp:3.4.1'
  6. }

3. 應用程序初始化

在使用Android SDK調用API前,需要對SDK的上下文進行一些初始化配置,如權限聲明、傳遞應用上下文、訪問控製等。

3.1 權限聲明

AndroidManifest.xml中添加如下內容:

  1. <uses-permission android:name="android.permission.INTERNET" />

3.2 AppKey配置

3.2.1 非安全方式配置AppKey及AppSecret

強烈建議隻在開發測試階段使用非安全的方式配置AppKey及AppSecret。強烈建議在控製台中為移動應用創建新的應用,不和其他端上應用共用AppKey。

從控製台中獲取到應用的AppKey及AppSecret,並在AndroidManifest.xml中添加如下內容:

  1. <application>
  2. <meta-data android:name="com.alibaba.apigateway.appKey" android:value="appKey" />
  3. <meta-data android:name="com.alibaba.apigateway.appSecret" android:value="appSecret" />
  4. </application>
3.2.2 較安全地存儲AppKey及AppSecret

請使用阿裏雲提供的移動安全產品,點擊查看產品介紹

通過使用安全存儲功能將AppKey及AppSecret較安全地存儲在移動應用端,點擊查看使用文檔。請按照上述使用文檔聯係移動安全產品將API網關所需要AppKey和AppSecret存放在安全圖片中。

用戶隻需要按照上述文檔依賴移動安全SDK並正確放置安全圖片,API網關會自動從安全圖片中獲取所需數據。

3.3 SDK初始化

在應用初始化的時候添加SDK初始化代碼。以下以MainActivity為例:

  1. package ...;
  2. import ...;
  3. public class MainActivity extends AppCompatActivity {
  4. @Override
  5. protected void onCreate() {
  6. super.onCreate();
  7. // 初始化API網關SDK
  8. initGatewaySdk();
  9. }
  10. private void initGatewaySdk() {
  11. // 初始化API網關
  12. ApiGatewayClient.init(getApplicationContext(), false);
  13. }
  14. }

注意,如果SDK依賴的AppKey及AppSecret已通過移動安全服務進行安全存儲,請使用以下初始化代碼:

  1. ApiGatewayClient.init(getApplicationContext(), true);

4. SDK使用示例

4.1 調用API

同步調用:

以阿裏雲雲市場售賣的阿裏短信服務為例。

  1. // 獲取服務
  2. RpcService rpcService = ApiGatewayClient.getRpcService();
  3. ApiRequest apiRequest = new ApiRequest();
  4. // 設置請求地址、Path及Method
  5. apiRequest.setAddress("https://sms.market.alicloudapi.com");
  6. apiRequest.setPath("/singleSendSms");
  7. apiRequest.setMethod(HttpMethod.GET);
  8. // 按照文檔設置Query參數,支持設置Header參數、Form形式Body及二進製形式Body
  9. apiRequest.addQuery("ParamString", "demo");
  10. apiRequest.addQuery("RecNum", "demo");
  11. apiRequest.addQuery("SignName", "demo");
  12. apiRequest.addQuery("TemplateCode", "demo");
  13. // 設置超時時間及其他
  14. apiRequest.setTimeout(3000);
  15. try {
  16. ApiResponse apiResponse = rpcService.call(apiRequest);
  17. // 處理apiResponse,以下為常用方法
  18. // RequestId
  19. // apiResponse.getRequestId();
  20. // Code
  21. // apiResponse.getCode();
  22. // ErrorMessage
  23. // apiResponse.getErrorMessage();
  24. // Response Content
  25. // apiResponse.getStringBody();
  26. // Response Headers
  27. // apiResponse.getHeaders();
  28. } catch (ApiInvokeException e) {
  29. // 處理異常
  30. }

異步回調:

以阿裏雲雲市場售賣的身份證識別為例。

  1. // 獲取服務
  2. RpcService rpcService = ApiGatewayClient.getRpcService();
  3. final ApiRequest apiRequest = new ApiRequest();
  4. // 設置請求地址、Path及Method
  5. apiRequest.setAddress("https://dm-51.data.aliyun.com");
  6. apiRequest.setPath("/rest/160601/ocr/ocr_idcard.json");
  7. apiRequest.setMethod(HttpMethod.POST);
  8. // 按照文檔設置二進製形式Body,支持設置Query參數、Header參數、Form形式Body
  9. apiRequest.setStringBody("JSON格式參數");
  10. // 設置支持自簽等形式的證書,如果服務端證書合法請勿設置該值,僅在開發測試或者非常規場景下設置。
  11. apiRequest.setTrustServerCertificate(true);
  12. // 設置超時
  13. apiRequest.setTimeout(10000);
  14. rpcService.call(apiRequest, new ApiResponseCallback() {
  15. @Override
  16. public void onSuccess(ApiResponse apiResponse) {
  17. // 處理apiResponse
  18. }
  19. @Override
  20. public void onException(ApiInvokeException e) {
  21. // 處理異常
  22. }
  23. });

最後更新:2016-11-23 16:04:20

  上一篇:go Android SDK 使用指南__SDK_API 網關-阿裏雲
  下一篇:go OBJECTC SDK 使用手冊__使用SDK調用已開放API_SDK_API 網關-阿裏雲