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请求很简单
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请求。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]。