douban-objc-clientObjective C 实现的 豆瓣 API 客户端
douban-objc-client 是一个 Objective C 实现的 豆瓣 API 客户端。现在仅支持 iOS。
1.提供 OAuth2 所需参数
DOUService *service = [DOUService sharedInstance]; service.clientId = kAPIKey; service.clientSecret = kPrivateKey;
2.发起一个异步请求
NSString *subPath = [NSString stringWithFormat:@"/book/subject/%d", bookId]; DOUQuery *query = [[[DOUQuery alloc] initWithSubPath:subPath parameters:nil] autorelease]; query.apiBaseUrlString = service.apiBaseUrlString; DOUHttpRequest *req = [DOUHttpRequest requestWithQuery:query target:self]; DOUService *service = [DOUService sharedInstance]; [service addRequest:req];
若使用 delegate 方式处理回调,要注意一个问题,某些情况下,request 的 delegate 被 dealloc 后,request 才得到了返回。这时就是一个 已释放的 delegate 来处理回调。 这会造成程序崩溃。处理方法为,在 request 的 delegate (例如某个 UIViewController) 的 dealloc 方法中对 request 发送 clearDelegatesAndCancel 消息,再 release request。
另外一个更为优雅的方法是使用“闭包” (block),DOUHttpRequest 提供了一个方法,可以用闭包来处理回调。由于 request 会自动 retain 闭包。所以,这就避免了使用 delegate 处理回调时可能出现的上述问题。
但, Objective-C 的闭包在 iOS 4.0 及其以上版本才得到支持。
DOUHttpRequest 的闭包处理回调的方法:
+ (DOUHttpRequest *)requestWithQuery:(DOUQuery *)query completionBlock:(DOUBasicBlock)completionHandler;
3.异步请求的回调
- (void)requestFinished:(DOUHttpRequest *)req { NSError *error = [req error]; if (!error) { DoubanFeedEvent *feed = [[DoubanFeedEvent alloc] initWithData:[req responseData]]; } } - (void)requestFailed:(DOUHttpRequest *)req { NSLog(@"error"); }
评论
douban-client豆瓣客户端 API
douban-client是对豆瓣APIv2接口进行了一个简单封装,主要包括了OAuth2.0认证、图片上传以及接口方面的调用。目前已完成的接口有:* 用户 User* 广播 Miniblog* 豆邮
douban-client豆瓣客户端 API
0
CouchAppCouchDB的客户端API
CouchApp是一个开发使用CouchDB的Web应用的小型框架。它的主要功能是可以把一个文件系统的目录转换成CouchDB中的一个设计文档。在开发的时候,可以按照一般Web应用的结构来组织文件系统
CouchAppCouchDB的客户端API
0
DoubanFM豆瓣电台客户端
DoubanFM是一个豆瓣电台的Windows客户端,使用C#编写,基于.NETFramework中的WPF技术。软件界面运用了较多动画,界面风格仿造Metro风格,功能不强大,但界面很友好。打开豆瓣
DoubanFM豆瓣电台客户端
0
BeckettPython的HTTP API客户端
Beckett是一个基于惯例的(convention-based)框架,是为了建设HTTPAPIs的Python接口。因为它是基于惯例的,它不需要使用魔法就能用语HTTPAPIs,像REST风格的UR
BeckettPython的HTTP API客户端
0
SendCloud-RubySendCloud API 的 Ruby 客户端
这个是SendCloudAPI的Ruby客户端。用法配置Sendcloud.setup do |config| config.api_user = 'your api user' config.a
SendCloud-RubySendCloud API 的 Ruby 客户端
0
hbcStreaming API 的 Java 客户端
hbc(HosebirdClient)是TwitterStreamingAPI的Java客户端开发包。主要特性:支持GZip、OAuth和分块(partitioning);自动重新连接,并进行适当的b
hbcStreaming API 的 Java 客户端
0