【iOS开源码】(1):CCLHTTPServer

我从没有见过比 CCLHTTPServer 更简单的 iOS HTTP server了。你甚至不用创建不论什么子类就可以使用它。对于大部分任务,这个小巧但强悍的server能够满足你的须要。

它简单到令人发指。因此我觉得光看它的主页介绍就已经足够了:

https://github.com/cocodelabs/CCLHTTPServer

CCLHTTPServer 是一个 iOS/OSX 下的简单HTTP server框架。

一、使用方法

以下代码创建了一个简单的 HTTP server,监听指定端口。并用指定的 CCLHTTPServerResponse类(子类)进行响应。

Objective-C:

CCLHTTPServer*server = [[CCLHTTPServer alloc] initWithInterface:nil port:8080handler:^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];

}];

Switf:

varserver:CCLHTTPServer=CCLHTTPServer(interface: nil, port: 7433, handler:

{request in

let headers =["Content-Type": "text/plain; charset=utf8"]

let body = "Hello World".dataUsingEncoding(NSUTF8StringEncoding);

returnCCLHTTPServerResponse(statusCode: 200, headers: headers, body: body)

})

CCLHTTPServerResponse 必须对传递给它的request 參数进行处理。request 參数是一个实现了CCLHTTPServerRequest 协议的对象,该协议封装了各种实用的方法,你能够利用这些方法创建一个各种 response(该协议以下会具体介绍)。

CCLHTTPServer 的目的是暴露一个用于创建HTTP server的标准 O-C 接口,见CLLHTTPServer/Interface 文件夹。

也就是说。别的 HTTP server也能使用这些接口。开发人员不用管某个server的具体实现就可以使用该接口编写自己的框架。

二、请求 Request

request 是一个实现了 CCLHTTPServerRequest 协议的对象。该协议暴露了 HTTP 请求的基本具体比如请求方法、路径、HTTP 版本号。headers 以及正文。

@protocol CCLHTTPServerRequest<NSObject>

- (NSString *)method;

- (NSString *)path;

- (NSString *)HTTPVersion;

- (NSDictionary *)headers;

- (NSData *)body;

@end

三、响应 Responses

你能够新建一个 response 类,也能够使用的不论什么已经实现了 CCLHTTPServerResponse协议的已有类。当然,绝大多数情况下,使用 CCLHTTPServerResponse 足矣。

1、返回 NSData 数据

[CCLHTTPServerResponseresponseWithStatusCode:204 headers:nil body:nil];

2、返回文本数据

[CCLHTTPServerResponseresponseWithStatusCode:200

headers:nil

content:@"Hello World"

contentType:@"plain/text"];

3、返回 URL 编码的名值对

这样的形式如同: name=Kyle&sex=female

[CCLHTTPServerResponseformURLEncodedResponseWithStatusCode:200

headers:nil

parameters:@{@"name": @"Kyle"}];

4、返回 JSON 数据

[CCLHTTPServerResponseJSONResponseWithStatusCode:200

headers:nil

parameters:@{@"name": @"Kyle"}];

四、安装

pod ‘CCLHTTPServer‘

时间: 2024-09-30 14:23:50

【iOS开源码】(1):CCLHTTPServer的相关文章

iOS开源项目周报0302

由OpenDigg 出品的iOS开源项目周报第十期来啦.我们的iOS开源周报集合了OpenDigg一周来新收录的优质的iOS开源项目,方便iOS开发人员便捷的找到自己需要的项目工具等.TodayMind 在通知中心管理提醒事项 XTAudioBeacons 媒体音频数据同步到移动设备 CTPanoramaView 图片的全景触摸 YNDropDownMenu 称心如意的下拉菜单 CardSlider Tinder风格的点赞界面 SnapchatCheckbox 仿snapchat的复选框 CCF

直接拿来用!最火的iOS开源项目(一~三)

结束了GitHub平台上“最受欢迎的Android开源项目”系列盘点之后,我们正式迎来了“GitHub上最受欢迎的iOS开源项目”系列盘点.今天,我们将介绍20个在GitHub上非常受开发者欢迎的iOS开源项目,你准备好了吗? 1. AFNetworking 在众多iOS开源项目中,AFNetworking可以称得上是最受开发者欢迎的库项目.AFNetworking是一个轻量级的iOS.Mac OS X网络通信类库,现在是GitHub上第三大Objective-C库.它建立在NSURLConne

一些iOS开源类库

1. AFNetworking 支持HTTP请求和基于REST的网络服务(包括GET.POST.PUT.DELETE等): 支持ARC: 要求iOS 5.0及以上版本: 有一些插件扩展已有的功能,还有一个功能齐全的API: 从URL中获取JSON特别简单. 2. Three20 Three20原本是iPhone版Facebook中所使用的工具库,包括照片查看器等一系列的iPhone UI类集,以及HTTP磁盘缓存等一些通用工具. 3. facebook-ios-sdk 让开发者将Facebook

iOS 开源项目

iOS 开源项目 在 Github 上 Star 太多了,有时候很难找到自己想要的开源库,所以在此记录下来.便于自己开发使用,也顺便分享给大家. 动画 awesome-ios-animation收集了iOS平台下比较主流炫酷的几款动画框架 RCTRefreshControlqq的下拉刷新 TBIconTransitionKiticon 的点击动画过渡效果 PullToBounce类似百度外卖的下拉刷新动画 LiquidFloatingActionButton可定制水滴型浮动动态按钮组件及演示 C

iOS开源项目(新)

初学者有了一些基础后,读源码是很好的学习和进阶方式,但是一定要选对源码.选好源码.刚才还在某社区怒喷别人分享的烂资源误人子弟,分享一些二把刀子写的「高仿XXX」源码,真是不能忍.如果你问我喷对我有啥好处,能想到的只有两个字:情(zhuang)怀(b). OK,下面推荐几个业界良心,awesome系列: https://github.com/vsouza/awesome-ioshttps://github.com/joeljfischer/awesome-apple Swift: matteocr

GitHub 上都有值得关注学习的 iOS 开源项目

GitHub上有很多不错的iOS开源项目,个人认为不错的,有这么几个: 1. ReactiveCocoa:ReactiveCocoa/ReactiveCocoa · GitHub:GitHub自家的函数式响应式编程范式的Objective-C实现,名字听着很高大上,学习曲线确实也比较陡,但是绝对会改变你对iOS编程的认知,首推之.2. Mantle:Mantle/Mantle · GitHub:又是GitHub自家的产物,轻量级建模的首选,也可以很好的配合CoreData工作.3. AFNetw

iOS 开源项目(四)

1.AFNetworking 在众多iOS开源项目中,AFNetworking可以称得上是最受开发者欢迎的库项目.AFNetworking是一个轻量级的iOS.Mac OS X网络通信类库,现在是GitHub上第三大Objective-C库.它建立在NSURLConnection.NSOperation等类库的基础上,让很多网络通信功能的实现变得十分简单,因此,许多iOS应用开发都会使用到它. 支持HTTP请求和基于REST的网络服务(包括GET.POST.PUT.DELETE等): 支持ARC

直接拿来用!最火的iOS开源项目(三)

41. DCIntrospect Introspect是由来自澳大利亚的Domestic Cat Software工作室在GitHub上发起的一个开源项目.Introspect是一个很小的工具集,主要用于帮助开发者调试使用UIKit框架构建的iOS用户界面,堪称是iOS界面调试神器. Introspect特别适合来做动态创建.运行时可更改.通过查找透明视图调整性能.不必重绘的视图等的UI布局.既可用于iPhone模拟器,也可直接在iOS设备上运行使用. 42. SVWebViewControll

iOS开源库

youtube下载神器:https://github.com/rg3/youtube-dl我擦咧 vim插件:https://github.com/Valloric/YouCompleteMevim插件配置:https://github.com/spf13/spf13-vim ----------------Mac完整项目----------电台:https://github.com/myoula/sostart豆瓣FM:https://github.com/turingou/douban.fm