xmlrpc 2.3.4

xmlrpc 2.3.4

测试已测试
语言语言 Obj-CObjective C
许可 MIT
发布最新版本2015年4月

Nikolay Kasyanov 维护。



xmlrpc 2.3.4

  • Eric Czarny和Nikolay Kasyanov

Cocoa XML-RPC框架

Cocoa XML-RPC框架是一个简单且轻量级的XML-RPC客户端框架,用Objective-C编写。

CocoaPods podspec状态

要求

Cocoa XML-RPC框架是为Mac OS X 10.5或更高版本构建和设计的。此版本应提供基本的iPhone和iPod touch支持。

此版本的Cocoa XML-RPC框架包含了一个基于事件的新XML解析器。之前的基于树的XML解析器仍然存在,但不再是默认的XML-RPC响应解析器,也不包含在Xcode构建中。这应有望改善与iPhone SDK的兼容性。

使用方法

以下Cocoa XML-RPC框架示例假定包含的XML-RPC测试服务器可用。有关测试服务器的更多信息,请参阅README。

XMLRPC\Tools\Test Server

在继续之前,请查阅本文件。

通过XML-RPC连接管理器调用XML-RPC请求

通过XML-RPC连接管理器调用XML-RPC请求很简单

NSURL *URL = [NSURL URLWithString: @"http://127.0.0.1:8080/"];  
XMLRPCRequest *request = [[XMLRPCRequest alloc] initWithURL: URL];
XMLRPCConnectionManager *manager = [XMLRPCConnectionManager sharedManager];

[request setMethod: @"Echo.echo" withParameter: @"Hello World!"];

NSLog(@"Request body: %@", [request body]);

[manager spawnConnectionWithXMLRPCRequest: request delegate: self];

[request release];

这会启动一个新的XML-RPC连接,并为该连接分配一个唯一标识符,并将其返回给发送方。此唯一标识符,以NSString表示的UUID,然后可以用于从XML-RPC连接管理器获取XML-RPC连接,只要该连接仍然活跃。

XML-RPC连接管理器已被设计用于简化对活跃的XML-RPC连接的管理。例如,以下方法返回活跃的XML-RPC连接标识符的NSArray

- (NSArray *)activeConnectionIdentifiers;

此方法返回的NSArray包含每个活跃连接标识符的列表。提供连接标识符,以下方法将返回请求的XML-RPC连接的实例

- (XMLRPCConnection *)connectionForIdentifier: (NSString *)connectionIdentifier;

最后,为了使代理接收XML-RPC响应、身份验证挑战或错误,必须实现XMLRPCConnectionDelegate协议。例如,以下将处理成功的XML-RPC响应

- (void)request: (XMLRPCRequest *)request didReceiveResponse: (XMLRPCResponse *)response {
    if ([response isFault]) {
        NSLog(@"Fault code: %@", [response faultCode]);

        NSLog(@"Fault string: %@", [response faultString]);
    } else {
        NSLog(@"Parsed response: %@", [response object]);
    }

    NSLog(@"Response body: %@", [response body]);
}

请参阅XMLRPCConnectionDelegate.h,了解代理必须实现的方法的完整列表。这些代理方法中的每一个都扮演着活跃XML-RPC连接生命周期中的角色。

发送同步XML-RPC请求

在一些情况下,可能需要在另一个线程或后台进程中同步调用XML-RPC请求。XMLRPCConnection.h 中声明了以下方法,用于同步调用XML-RPC请求。

+ (XMLRPCResponse *)sendSynchronousXMLRPCRequest: (XMLRPCRequest *)request error: (NSError **)error;

如果在发送XML-RPC请求时出现问题,则会返回nil。

如果我发现了一个错误,或者我想帮忙怎么办?

请将任何问题、评论、建议或问题与联系我。我会尽力抽出时间回复每一个请求。

希望为项目做出贡献的人应该首先使用Git获取最新源代码。该项目托管在GitHub上,这使得任何人都可以轻松做出贡献。只需创建一个分支并做出您的更改。

鸣谢

NSData+Base64中发现的Base64编码解码器由Matt Gallagher创建。

这个框架的想法来自Brent Simmons提供的示例,他是NetNewsWire的创建者。

许可证

版权所有(c) 2012 Eric Czarny。

Cocoa XML-RPC框架应附有LICENSE文件,此文件包含与此分发相关的许可证。

如果没有LICENSE文件,请联系Eric Czarny [email protected]