zoukankan      html  css  js  c++  java
  • 【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'

  • 相关阅读:
    python学习之模块(pip),列表生成式,模块操作mysql,excel
    python学习之非空即为真,函数,集合,解包与打包
    配置虚拟机和网络配置
    python学习之文件读写,序列化(json,pickle,shelve)
    python学习之列表,元祖,字典
    盒子内部文字超出不换行
    织梦dedecms文章发布日期时间调用标签大全
    贝塞尔曲线值
    CSS解决border影响元素宽高的问题(box-sizing属性)
    pc建站自适应
  • 原文地址:https://www.cnblogs.com/yangykaifa/p/6851829.html
Copyright © 2011-2022 走看看