App 内置 Http Server

近来公司iOS项目需要内置 Http Server ,查到 github 有两个可以使用的优秀开源库:

1. GCDWebServer

2. CocoaHTTPServer

简单对比下,发现GCDWebServer 更为轻量级,且能满足我的项目需求,简单记下调用方法:

 

#import "GCDWebServer.h"
#import "GCDWebServerDataResponse.h"
#import "GCDWebServerDataRequest.h"
#import "GCDWebServerURLEncodedFormRequest.h"



- (void)setGCDWebServer{ _webServer = [[GCDWebServer alloc] init]; _webServer.delegate = self; // POST [_webServer addHandlerForMethod:@"POST" path:@"/connection" //请求路径 requestClass:[GCDWebServerDataRequest class] processBlock:^GCDWebServerResponse *(GCDWebServerRequest* request) { // NSLog(@"jsonObject:%@",[(GCDWebServerDataRequest *)request jsonObject]);//获取 post 的请求体body // NSString* deviceName = [[(GCDWebServerDataRequest*)request jsonObject] objectForKey:@"deviceName"]; // NSString* deviceuuid = [[(GCDWebServerDataRequest*)request jsonObject] objectForKey:@"uuid"]; NSLog(@"query:%@",[request query]); ////获取请求的 query NSString* deviceName = [[request query] objectForKey:@"deviceName"]; NSString* deviceuuid = [[request query] objectForKey:@"uuid"]; NSLog(@"remoteAddressString:%@",[(GCDWebServerRequest *)request remoteAddressString]);//远程IP NSLog(@"localAddressString:%@",[(GCDWebServerRequest *)request localAddressString]);//本地IP NSLog(@"path:%@",[(GCDWebServerRequest *)request path]);//请求路径 return [GCDWebServerDataResponse responseWithJSONObject:@{@"status":@"1"}]; }]; //GET [_webServer addHandlerForMethod:@"GET" path:@"/status" //请求路径 requestClass:[GCDWebServerRequest class] processBlock:^GCDWebServerResponse *(GCDWebServerRequest* request) { VLOG(@"%@",[request query]) //16位的MD5 IDFV NSString *MD5Bit16IDFV = [NSString getMd5_16Bit_String:[[[UIDevice currentDevice] identifierForVendor] UUIDString]]; //返回 Json 信息 return [GCDWebServerDataResponse responseWithJSONObject:@{@"username":@"App name", @"uid":@"App uid", @"os":@"ios", @"mac":MD5Bit16IDFV}]; }]; // Start server on port 9526 端口号:9526 [_webServer startWithPort:[MoodBoxLocalWebServerPort integerValue] bonjourName:nil]; NSLog(@"Visit %@ in your web browser", _webServer.serverURL); }


在代理的方法
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions;中调用 - (void)setGCDWebServer;

 

posted @ 2015-09-30 15:30  moyazi  阅读(1700)  评论(0编辑  收藏  举报