这是一个用于执行异步 RESTful HTTP 连接的类。
demo/ 文件夹包含一个演示项目,展示了如何使用 NBAsyncRestConnection。在其中运行 pod install
,然后运行它。
使用你需要的少量或大量连接数据实例化一个 NBAsyncRestConnection
// simplest form, for GET requests
[[NBAsyncRestConnection alloc] initWithURL:myurl
delegate:self];
// most complex form
[[NBAsyncRestConnection alloc]
initWithURL:myurl
method:NBAsyncRestConnectionMethodPost
body:myBodyString
contentType:@"application/json"
headers:myHeaderDict
delegate:self];
HTTP 请求在初始化时立即发生。确保您在请求返回之前将连接对象保存在某处,以免对象被销毁。
您的视图控制器应遵循 NBAsyncRestConnectionDelegate 协议,该协议具有以下方法
- (void) connectionDidFail:(NBAsyncRestConnection *)theConnection;
- (void) connectionDidFinish:(NBAsyncRestConnection *)theConnection;
在这些方法中,您可以访问以下 NBAsyncRestConnection 字段
@property (nonatomic, assign) NSInteger responseCode;
@property (nonatomic, retain) NSMutableData *receivedData;
@property (nonatomic, retain) NSDictionary *receivedHeaders;
建议使用此类的用法是创建自己的 rest 连接类,该类定义了您的方法定义,并与业务对象映射。例如
@interface NBDemoRestConnection : NSObject <NBAsyncRestConnectionDelegate>
-(void)getCitiesWithinNorth:(double)n
south:(double)s
east:(double)e
west:(double)w
withDelegate:(id<NBDemoRestConnectionDelegate>)delegate;
@end
您还可以定义自己的代理协议,其中回调方法返回业务对象
@protocol NBDemoRestConnectionDelegate<NSObject>
-(void)getCitiesOperationFinishedWithCities:(NSArray *)cities;
@end
查看演示以了解如何实现此方法。
此类已经回测到 iOS 5.0。
此类委托 NSURLConnection 进行 HTTP 请求,并用便捷方法包装它。
此代码在 MIT 许可下发布。有关详细信息,请参阅 LICENSE 文件。