mpaas RPC

2019-08-26  本文已影响0人  艾泽拉斯大祭司

1、配置工程

为保证客户端能成功请求到服务端,需在客户端配置网关地址;同时为防止客户端请求被篡改和伪造,还需对请求数据进行加签。

2、配置网关

需要客户端在 

 的 category 中重写以下的接口方法,指定 RPC 的网关地址;

网关地址

3、配置秘钥

RPC 请求有签名机制,客户端使用的签名密钥保存在无线保镖图片中,需要通过在 DTRpcInterface 的 category 中重写下面的接口方法,指定给 RPC 加密的密钥名称。

密钥名称

⚠️使用 Xcode 插件添加 RPC 模块后,会自动从工程元数据中读取网关地址和加签信息,设置到当前工程中,无需修改。

4、全局配置

RPC 在使用之前需要全局配置 V2,在第一个 RPC 发起之前调用下面的代码即可。

applicationDidFinishLaunching中配置就可以

5、生成 RPC 代码

当 App 在移动网关控制台接入后台服务后,即可下载客户端的 RPC 代码

下载代码

6、发送请求

将下载好的代码拽到工程中,RPC 请求必须在子线程调用,可使用 RPC 模块中, DTRpcAsyncCaller 封装的子线程调用接口,回调方法默认为主线程。代码示例如下

- (void)sendRpc

{

__block RPCDemoLoginResult *result =nil;

    [DTRpcAsyncCaller 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);

        }

    } completion:^{

NSString*str =@"";

if(result && result.success) {

str =@"登录成功";

}else{

str =@"登录失败";

        }

UIAlertView*alert = [[UIAlertViewalloc] initWithTitle:str message:nildelegate:nil

cancelButtonTitle:nilotherButtonTitles:@"ok",nil];

        [alert show];

    }];

}

上一篇下一篇

猜你喜欢

热点阅读