CCLHTTPServer 是一个适用于 iOS 和 OS X 的简单 HTTP 库服务器。
您可以使用 CCLHTTPServer
类创建一个基本的服务器,该服务器监听一个端口,只需传递一个处理器即可开始监听。
CCLHTTPServer *server = [[CCLHTTPServer alloc] initWithInterface:nil port:8080 handler:^id<CCLHTTPServerResponse>(id<CCLHTTPServerRequest> request) {
NSDictionary *headers = @{
@"Content-Type": @"text/plain; charset=utf8",
};
NSData *body = [@"Hello World" dataUsingEncoding:NSUTF8StringEncoding];
return [[CCLHTTPServerResponse alloc] initWithStatusCode:200 headers:headers body:body];
}];
您的处理器将接受一个符合 CCLHTTPServerRequest
协议的请求。您必须返回一个符合 CCLHTTPServerResponse
协议的对象,我们提供了一个名为 CCLHTTPServerResponse
的标准响应类,它具有创建不同类型响应的各种便利方法。
CCLHTTPServer 被设计用来通过 CCLHTTPServer/Interface
pod 揭示一个标准接口以在 Objective-C 中创建 HTTP 服务器。这意味着其他 HTTP 服务器能够遵循相同的接口,并且允许开发者围绕这个标准接口编写框架,而无需被绑定到单个服务器实现。
请求是一个符合 CCLHTTPServerRequest
协议的对象,它暴露有关请求的基本信息,例如 method
、path
、HTTPVersion
、headers
和 body
。
@protocol CCLHTTPServerRequest <NSObject>
- (NSString *)method;
- (NSString *)path;
- (NSString *)HTTPVersion;
- (NSDictionary *)headers;
- (NSData *)body;
@end
您可以创建自己的响应类或将现有类使符合 CCLHTTPServerResponse
协议。然而,对于大多数情况,您可以直接使用 CCLHTTPServerResponse
类。
[CCLHTTPServerResponse responseWithStatusCode:204 headers:nil body:nil];
[CCLHTTPServerResponse responseWithStatusCode:200
headers:nil
content:@"Hello World"
contentType:@"plain/text"];
[CCLHTTPServerResponse formURLEncodedResponseWithStatusCode:200
headers:nil
parameters:@{@"name": @"Kyle"}];
[CCLHTTPServerResponse JSONResponseWithStatusCode:200
headers:nil
parameters:@{@"name": @"Kyle"}];
pod 'CCLHTTPServer'
CCLHTTPServer 在 BSD 许可证下发布。见 LICENSE。