日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

使用 SDK

RPC 相關(guān)模塊為 APMobileNetwork.framework、MPMgsAdapter,推薦使用 MPMgsAdapter 中的接口。

本文引導您通過以下步驟使用移動網(wǎng)關(guān) SDK:

  1. 初始化網(wǎng)關(guān)服務(wù)

  2. 生成 RPC 代碼

  3. 發(fā)送請求

  4. 請求自定義配置

  5. 自定義 RPC 攔截器

  6. 數(shù)據(jù)加密

  7. 數(shù)據(jù)簽名

初始化網(wǎng)關(guān)服務(wù)

調(diào)用以下方法初始化網(wǎng)關(guān)服務(wù):

[MPRpcInterface initRpc];

舊版本升級注意事項

10.1.32 版本之后不再需要添加 DTRpcInterface類的 Category文件,中間層會實現(xiàn)包裝從 meta.config中讀取,升級版本后請檢查工程中是否存在舊版本配置,如果有請移除。下面為新版本應(yīng)移除的 DTRpcInterface類的 Category文件。

gateway

生成 RPC 代碼

當 App 在移動網(wǎng)關(guān)控制臺接入后臺服務(wù)后,即可下載客戶端的 RPC 代碼。更多信息請參考 生成代碼

下載的 RPC 代碼結(jié)構(gòu)如下:

code structure

其中:

  • RPCDemoCloudpay_accountClient為 RPC 配置。

  • RPCDemoAuthLoginPostReq為 request 模型。

  • RPCDemoLoginResult為 response 模型。

發(fā)送請求

RPC 請求必須在子線程調(diào)用,可使用中間層中 MPRpcInterface封裝的子線程調(diào)用接口,回調(diào)方法默認為主線程。示例代碼如下:

- (void)sendRpc
{
    __block RPCDemoLoginResult *result = nil;
    [MPRpcInterface callAsyncBlock:^{
        @try
        {
            RPCDemoLoginRequest *req = [[RPCDemoLoginRequest alloc] init];
            req.loginId = @"alipayAdmin";
            req.loginPassword = @"123456";
            RPCDemoAuthLoginPostReq *loginPostReq = [[RPCDemoAuthLoginPostReq alloc] init];
            loginPostReq._requestBody = req;
            RPCDemoCloudpay_accountClient *service = [[RPCDemoCloudpay_accountClient alloc] init];
            result = [service authLoginPost:loginPostReq];
        }
        @catch (NSException *exception) {
            NSLog(@"%@", exception);
            NSError *error = [userInfo objectForKey:@"kDTRpcErrorCauseError"];        // 獲取異常詳細信息
            NSInteger code = error.code;        // 獲取異常詳細信息錯誤碼
        }
    } completion:^{
        NSString *str = @"";
        if (result && result.success) {
            str = @"登錄成功";
        } else {
            str = @"登錄失敗";
        }

        UIAlertView *alert = [[UIAlertView alloc] initWithTitle:str message:nil delegate:nil
                                              cancelButtonTitle:nil otherButtonTitles:@"ok", nil];
        [alert show];
    }];
}
說明

要使用 try catch捕獲異常;當網(wǎng)關(guān)異常時會拋出,根據(jù) 網(wǎng)關(guān)結(jié)果碼說明 查詢原因。

請求自定義配置

DTRpcMethod為 RPC 請求方法描述,記錄 RPC 請求的方法名、參數(shù)、返回類型等信息。

  • 如果發(fā)送請求時,不需要加簽,可以將 DTRpcMethod的 signCheck屬性設(shè)置為 NO。

    -(MPDemoUserInfo *) dataPostSetTimeout:(MPDemoPostPostReq *)requestParam
    {
      DTRpcMethod *method = [[DTRpcMethod alloc] init];
      method.operationType = @"com.antcloud.request.post";
      method.checkLogin =  NO ;
      method.signCheck =  NO ;
      method.returnType =   @"@\"MPDemoUserInfo\"";
    
      return [[DTRpcClient defaultClient] executeMethod:method params:@[ ]];
    }
  • 如果需要設(shè)置超時時間,可以配置 DTRpcMethod的 timeoutInterval屬性。

    -(MPDemoUserInfo *) dataPostSetTimeout:(MPDemoPostPostReq *)requestParam
    {
      DTRpcMethod *method = [[DTRpcMethod alloc] init];
      method.operationType = @"com.antcloud.request.post";
      method.checkLogin =  NO ;
      method.signCheck =  YES ;
       method.timeoutInterval = 1;     // 這個超時時間是客戶端收到網(wǎng)關(guān)返回的時間,服務(wù)端配置的超時時間是后端業(yè)務(wù)系統(tǒng)的返回時間;默認 20s,設(shè)置小于 1 時無效即為默認值
      method.returnType =   @"@\"MPDemoUserInfo\"";
    
      return [[DTRpcClient defaultClient] executeMethod:method params:@[ ]];
    }
  • 如果需要為接口添加 Header,可以使用下面 DTRpcClient的擴展方法。

    -(MPDemoUserInfo *) dataPostAddHeader:(MPDemoPostPostReq *)requestParam
    {
      DTRpcMethod *method = [[DTRpcMethod alloc] init];
      method.operationType = @"com.antcloud.request.postAddHeader";
      method.checkLogin =  NO ;
      method.signCheck =  YES ;
      method.returnType =   @"@\"MPDemoUserInfo\"";
    
      // 針對接口添加 header
      NSDictionary *customHeader = @{@"testKey": @"testValue"};
      return [[DTRpcClient defaultClient] executeMethod:method params:@[ ] requestHeaderField:customHeader responseHeaderFields:nil];
    }
  • 如果需要為所有接口添加 Header,可以參考下方攔截器的使用,采用攔截器的方式實現(xiàn)。具體實現(xiàn)方法請參考移動網(wǎng)關(guān) 代碼示例

  • checkLogin屬性為接口 session校驗使用,需要配合網(wǎng)關(guān)控制臺完成,默認設(shè)置為 NO 即可。

自定義 RPC 攔截器

基于業(yè)務(wù)需求,可能需要在 RPC 發(fā)送前,或 RPC 處理完成后進行相關(guān)邏輯處理,RPC 模塊提供攔截器機制處理此類需求。

自定義攔截器

創(chuàng)建攔截器,并實現(xiàn) <DTRpcInterceptor>協(xié)議的方法,用來處理 RPC 請求前后的相關(guān)操作。

@interface HXRpcInterceptor : NSObject<DTRpcInterceptor>

@end

@implementation HXRpcInterceptor

- (DTRpcOperation *)beforeRpcOperation:(DTRpcOperation *)operation{
    // TODO
    return operation;
}

- (DTRpcOperation *)afterRpcOperation:(DTRpcOperation *)operation{
   // TODO
   return operation;
}
@end

注冊攔截器

您可通過調(diào)用中間層的擴展接口,在攔截器容器中注冊自定義的子攔截器。

    HXRpcInterceptor *mpTestIntercaptor = [[HXRpcInterceptor alloc] init];    // 自定義子攔截器
    [MPRpcInterface addRpcInterceptor:mpTestIntercaptor];

數(shù)據(jù)加密

RPC 提供多種數(shù)據(jù)加密配置功能,詳情參考 數(shù)據(jù)加密

數(shù)據(jù)簽名(10.2.3 支持)

10.2.3 基線 RPC 提供多種數(shù)據(jù)簽名配置功能。10.2.3 基線升級了無線保鏢SDK,支持國密簽名,升級后使用本基線需要更換無線保鏢圖片為 V6 版本。

10.1.68 基線默認為 V5 版本,請按照下列步驟使用插件生成 V6 圖片,并替換工程中原有的 yw_1222.jpg無線保鏢圖片。

  1. 安裝 mPaaS 命令行工具(命令行工具包在了插件安裝中,去除 Xcode 簽名可設(shè)置 N)。

  2. 使用下列命令行,生成新的無線保鏢圖片。

    mpaas inst sgimage -c /path/to/Ant-mpaas-0D4F511111111-default-IOS.config -V 6 -t 1 -o /path/to/output --app-secret sssssdderrff --verbose
    說明

    其中 config 文件目錄、目標文件目錄、appsecret 參數(shù)說明請?zhí)鎿Q成實際值。

  3. 如需無線保鏢支持國密功能,請按照下面代碼配置 category 代碼設(shè)置簽名算法,默認不配置時是 MPAASRPCSignTypeDefault,簽名算法為 MD5。

    簽名算法可選值如下:

    • MD5:MPAASRPCSignTypeDefault(默認)

    • SHA256:MPAASRPCSignTypeSHA256

    • HMACSHA256:MPAASRPCSignTypeHMACSHA256

    • SM3:MPAASRPCSignTypeSM3

    代碼示例:

    #import <APMobileNetwork/DTRpcInterface.h>
    
    @interface DTRpcInterface (mPaaSDemo)
    
    @end
    
    @implementation DTRpcInterface (mPaaSDemo)
    
    - (MPAASRPCSignType)customRPCSignType
    {
        return MPAASRPCSignTypeSM3;
    }
    
    @end

相關(guān)鏈接