SZNetworking 0.4

SZNetworking 0.4

测试已测试
Lang语言 Obj-CObjective C
许可证 MIT
Released最后版本2014年12月

未申请 维护。



  • David Jedeikin

该库在意图上与 AFNetworking 类似,但架构有所不同,功能更少,代码更少。它旨在提供(几乎)创建 HTTP 请求和管理 NSMutableURLRequest 经 NSOperation 和 NSOperationQueue 所需要的最小内容。

目前未在任何产品应用中使用。它打算与下一代 Socialize API 一起使用。除非您打算修复一个或两个错误,否则使用应该是实验性的。该项目具有大量的单元测试覆盖率。它足够小,错误应该很少,如果您愿意,可以快速了解正在发生的事情。

示例 GET(GitHub API)

self.operationQueue = [[NSOperationQueue alloc] init];
self.operationQueue.maxConcurrentOperationCount = 5;

NSMutableURLRequest *request = [NSMutableURLRequest HTTPRequestWithMethod:@"GET" scheme:@"https" host:@"api.github.com" path:@"/users/socialize/repos" parameters:nil];
SZURLRequestOperation *operation = [[SZURLRequestOperation alloc] initWithURLRequest:request];
operation.URLCompletionBlock = ^(NSURLResponse *response, NSData *data, NSError *error) {
    id json = [data objectFromJSONData];
    NSLog(@"%@", json);
};

[self.operationQueue addOperation:operation];

示例 POST 与 OAuth(Socialize API v1)

NSString *payload = [@{@"udid": @"12345"} JSONString];
NSMutableURLRequest *request = [NSMutableURLRequest HTTPRequestWithMethod:@"POST" scheme:@"https" host:@"api.getsocialize.com" path:@"/v1/authenticate/" parameters:@{@"payload": payload}];
[request setAuthorizationHeaderWithConsumerKey:@"252f7ed8-2fe5-49a5-8b52-b5c06bd63891" consumerSecret:@"ea9dc991-fb32-4d40-9d85-aab35debf61c" token:nil tokenSecret:nil];
SZURLRequestOperation *operation = [[SZURLRequestOperation alloc] initWithURLRequest:request];
operation.URLCompletionBlock = ^(NSURLResponse *response, NSData *data, NSError *error) {
    id result = [data objectFromJSONData];
    NSLog(@"%@", result);
};

与 AFNetworking 的一些主要差异

  • 提供内置对签名 OAuth 请求的支持(设置 HTTP 授权头)。依赖于广泛使用的 OAuthCore 库来设置签名。这是对 OAuth 的请求级支持,您将对 UI 或身份验证过程负责。
  • 更轻量(<1000 SLOC 与 >5000 SLOC 比较)
  • HTTP 请求设置(参数、OAuth)存在于 NSMutableURLRequest 的公开类别方法中,而不是在包含的 HTTP 客户端类中。这是组织偏好,允许在处理 URL 请求时获得更多灵活性。
  • 操作如果其依赖项之一已失败则自动失败。

计划中但尚未实现的功能

  • 请求暂停。您可以暂停队列,但不能在请求过程中暂停请求。
  • SSL 白名单
  • 进度代理回调。