通过继承 NSURLProtocol 类,ArchaicProtocols 使 iOS 和 OS X 开发者能够使用旧版的文本协议。
为什么?为什么不呢!
目前已实现
Wishlist
#import "FingerURLProtocol.h"
// Register our NSURLProtocol subclass
[NSURLProtocol registerClass:[FingerURLProtocol class]];
// Create a Finger URL (the user part is optional)
NSURL *finger = [NSURL URLWithString:@"finger://[email protected]/"];
#import "QOTDURLProtocol.h"
// Register our NSURLProtocol subclass
[NSURLProtocol registerClass:[QOTDURLProtocol class]];
// Create a QTOD URL
NSURL *qotd = [NSURL URLWithString:@"qotd://djxmmx.net/"];
#import "DaytimeURLProtocol.h"
// Register our NSURLProtocol subclass
[NSURLProtocol registerClass:[DaytimeURLProtocol class]];
// Create a Daytime URL
NSURL *daytime = [NSURL URLWithString:@"daytime://time-c.nist.gov/"];
#import "EchoURLProtocol.h"
// Register our NSURLProtocol subclass
[NSURLProtocol registerClass:[EchoURLProtocol class]];
// Create an Echo URL
NSURL *echo = [NSURL URLWithString:@"echo://protocolhistory.postneo.com/?testecho"];
#import "FingerURLProtocol.h"
// Register our NSURLProtocol subclass
[NSURLProtocol registerClass:[FingerURLProtocol class]];
// Create a Finger URL (the user part is optional)
NSURL *finger = [NSURL URLWithString:@"finger://[email protected]/"];
// Get the default session
NSURLSession *session = [NSURLSession sharedSession];
// Create a task and run it
NSURLSessionDataTask *task = [session dataTaskWithURL:finger completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
NSLog(@"Response encoded %@ with error %@.", response.MIMEType, error);
NSString *responseString = [[NSString alloc] initWithData: data
encoding: NSASCIIStringEncoding];
NSLog(@"Full response:\n%@", responseString);
}];
[task resume];
[nw61-310-8.mit.edu]
Random Hall Bathroom Server v2.1
Bonfire Kitchen: *IN*USE* for 36 min
Bonfire Lounge: vacant for 6 hr
Pecker Lounge: vacant for 2 min
Pecker Kitchen: vacant for 39 min
K 282 L 290 K Clam Kitchen: *IN*USE* for 33 min
... ... ... ... Clam Lounge: vacant for 4 hr
| x : o | o : o | BMF Lounge: vacant for 3 min
| x : o | o : o | BMF Kitchen: vacant for 14 min
| o : o | o : o | Loop Kitchen: vacant for 2 sec
| o : o | - : o | Loop Lounge: vacant for 6 hr
~~~~~~~~~~~~~~~~~~~ Black Hole Lounge: vacant for 53 min
Black Hole Kitchen: vacant for 3 hr
o = vacant! Destiny Kitchen: vacant for 9 min
x = in use Destiny Lounge: vacant for 4 hr
Foo: vacant for 59 min
For more information finger [email protected]
(2181964)
要运行示例项目,首先通过克隆仓库,然后在 Example 目录中先运行 pod install
。
要运行测试,克隆仓库,在 Example 目录中打开 Example.xcworkspace,然后运行 pod install
。
测试文件位于 Example/ExampleTests/ExampleTests.m 中,可以通过 Product -> Test 运行。测试也是 ArchaicProtocols 的完全示例。
如果在构建过程中遇到错误,请从 Build Phases 下的 Link Binary With Libraries 中移除 libPods-Example.a
。有关更多信息,请参阅 这个 CocoaPods 问题。
ArchaicProtocols 处于早期实验性开发阶段,应被视为“alpha”质量,不适合部署。如果您发现错误或遇到任何问题,请提交一个问题或拉取请求。
Matt Croydon,[email protected]
ArchaicProtocols 可在 MIT 许可证下使用。有关更多信息,请参阅 LICENSE 文件。