来自 tumblr 的 iOS 和 OS X 上的网络连接库:JXHTTP
jopen
10年前
JXHTTP 是来自 tumblr 的 iOS 和 OS X 上的网络连接库。它利用操作队列和GCD对Cocoa的内置NSURLConnection对象提供了强大的包装,加入许多有用的功能如:块响应对象和跨越多个请求过程跟踪。它致力于成为尽可能轻量级和可读性,使它更易于使用或自定义高级的行为。
示例
Asynchronous
JXHTTPOperation *op = [JXHTTPOperation withURLString:@"https://encrypted.google.com/"]; op.didFinishLoadingBlock = ^(JXHTTPOperation *op) { NSLog(@"%@", op.responseString); }; [[JXHTTPOperationQueue sharedQueue] addOperation:op];
Synchronous
JXHTTPOperation *op = [JXHTTPOperation withURLString:@"https://encrypted.google.com/"]; [op startAndWaitUntilFinished]; NSLog(@"%@", op.responseString);
Complex
NSURL *postURL = [NSURL URLWithString:@"https://web.site/api/POST"]; NSDictionary *postParams = @{ @"make": @"Ferrari", @"model": @"458 Italia" }; JXHTTPOperation *op = [[JXHTTPOperation alloc] initWithURL:postURL]; op.requestBody = [[JXHTTPFormEncodedBody alloc] initWithDictionary:postParams]; op.requestCachePolicy = NSURLRequestReloadIgnoringLocalAndRemoteCacheData; op.responseDataFilePath = @"/tmp/downloaded_data"; op.trustedHosts = @[ postURL.host ]; op.performsBlocksOnMainQueue = YES; op.didSendDataBlock = ^(JXHTTPOperation *op) { NSLog(@"%lld bytes uploaded so far", op.bytesUploaded); }; [[JXHTTPOperationQueue sharedQueue] addOperation:op];