Latest 2.1.4
Homepage https://github.com/QuantumExplorer/AFJSONRPCClient
License MIT
Platforms ios 10.0, osx 10.9, requires ARC
Dependencies AFNetworking
Authors ,

AFJSONRPCClient

A JSON-RPC Client built on AFNetworking

JSON-RPC is a remote procedure call protocol encoded in JSON. It is a simple protocol (and very similar to XML-RPC), defining only a handful of data types and commands. JSON-RPC allows for notifications (info sent to the server that does not require a response) and for multiple calls to be sent to the server which may be answered out of order.

Example Usage

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) {
    // ...
}];

Using Protocol & NSProxy

Combine your JSON-RPC client with an Objective-C protocol for fun and profit!

@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) {
    // ...
}];

Subclassing

You can also subclass AFJSONRPCClient for shared class and service-related methods:

MyJSONRPCClient *client = [MyJSONRPCClient sharedClient];

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

Installation

CocoaPods is the recommended way to add AFJSONRPCClient to your project.

Here’s an example podfile that installs AFJSONRPCClient and its dependency, AFNetworking.

Podfile

platform :ios, '5.0'

pod 'AFJSONRPCClient', '0.1.0'

Note the specification of iOS 5.0 as the platform; leaving out the 5.0 will cause CocoaPods to fail with the following message:

[!] AFJSONRPCClient is not compatible with iOS 4.3.

License

AFJSONRPCClient and AFNetworking are available under the MIT license. See the LICENSE file for more info.

Latest podspec

{
    "name": "AFJSONRPCClient_DASH",
    "version": "2.1.4",
    "homepage": "https://github.com/QuantumExplorer/AFJSONRPCClient",
    "social_media_url": "https://twitter.com/AFNetworking",
    "authors": {
        "wiistriker": "[email protected]",
        "Mattt Thompson": "[email protected]"
    },
    "license": "MIT",
    "summary": "A JSON-RPC client build on AFNetworking.",
    "source": {
        "git": "https://github.com/QuantumExplorer/AFJSONRPCClient.git",
        "tag": "2.1.4"
    },
    "source_files": "AFJSONRPCClient",
    "requires_arc": true,
    "platforms": {
        "ios": "10.0",
        "osx": "10.9"
    },
    "dependencies": {
        "AFNetworking": [
            "~> 3.0"
        ]
    }
}

Pin It on Pinterest

Share This