AFJSONRPCClient 2.1.1

AFJSONRPCClient 2.1.1

测试测试过的
语言语言 Obj-CObjective C
许可证 MIT
发布时间最后发布时间2015年3月

MatttKevin Harwood维护。



一个基于AFNetworking构建的JSON-RPC客户端

JSON-RPC是一个使用JSON格式编码的远程过程调用协议。它是一个简单的协议(与XML-RPC非常相似),只定义了一小部分数据类型和命令。JSON-RPC允许发送通知(发送到服务器但不需要响应的信息)和发送多个调用到服务器,这些调用可能会按顺序返回。

示例用法

AFJSONRPCClient *client = [AFJSONRPCClient clientWithEndpointURL:[NSURL URLWithString:@"http://path.to/json-rpc/service/"]];

// Invocation
[client invokeMethod:@"method.name"
    success:^(AFHTTPRequestOperation *operation, id responseObject)
{
    // ...
}   failure:^(AFHTTPRequestOperation *operation, NSError *error) {
    // ...
}];

// Invocation with Parameters
[client invokeMethod:@"method.name"
          parameters:@{@"foo" : @"bar", @"baz" : @(13)}
    success:^(AFHTTPRequestOperation *operation, id responseObject) {
    // ...
}   failure:^(AFHTTPRequestOperation *operation, NSError *error) {
    // ...
}];

// Invocation with Parameters and Request ID
[client invokeMethod:@"method.name"
          parameters:@[@(YES), @(42)]
           requestId:@(2)
    success:^(AFHTTPRequestOperation *operation, id responseObject) {
    // ...
}   failure:^(AFHTTPRequestOperation *operation, NSError *error) {
    // ...
}];

使用协议和NSProxy

将您的JSON-RPC客户端与Objective-C协议结合起来以乐趣和利益!

@protocol ArithemeticProtocol
- (void)sum:(NSArray *)numbers
    success:(void (^)(NSNumber *sum))success;
    failure:(void (^)(NSError *error))failure;
@end

AFJSONRPCClient *client = [AFJSONRPCClient clientWithEndpointURL:[NSURL URLWithString:@"http://path.to/json-rpc/service/"]];

[[client proxyForProtocol:@protocol(ArithemeticProtocol)] sum:@[@(1), @(2)]
    success:^(NSNumber *sum) {
    // ...
}   failure:^(NSError *error) {
    // ...
}];

子类化

您还可以对AFJSONRPCClient进行子类化,以便为共享类和与服务相关的方法提供共享代码。

MyJSONRPCClient *client = [MyJSONRPCClient sharedClient];

[client sum:@[@(1), @(2)]
    success:^(NSNumber *sum) {
    // ...
}   failure:^(NSError *error) {
    // ...
}];

安装

CocoaPods是推荐的方式,用于将AFJSONRPCClient添加到项目中。

以下是一个示例Podfile,它将AFJSONRPCClient及其依赖项AFNetworking安装到项目中。

Podfile

platform :ios, '5.0'

pod 'AFJSONRPCClient', '0.1.0'

请注意指定iOS 5.0作为平台;省略5.0会导致CocoaPods失败,并显示以下消息

[!] AFJSONRPCClient与iOS 4.3不兼容。

许可证

AFJSONRPCClient和AFNetworking都可在MIT许可证下获得。有关更多信息,请参阅LICENSE文件。