文档章节

ios扩展http服务,将iphone做小型的http服务器

luoruowen
 luoruowen
发布于 2016/06/24 13:58
字数 586
阅读 511
收藏 0

 AppDelegate.h

//
//  AppDelegate.m
//  IosHttpServer
//
//  Created by  罗若文 on 16/6/24.
//  Copyright © 2016年 罗若文. All rights reserved.
//

#import "AppDelegate.h"
#import <NewIdeasAPI_LocHttpServer/NewIdeasAPI_LocHttpServer.h>

@interface AppDelegate ()

@end

@implementation AppDelegate


- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

    //[NIHTTPServer setPort:8080 withAction:@[@"/",@"/1/1.do"]];//如果没有配置Settings.plist可以用此方法配置端口和action路径
    [[NIHTTPServer sharedNIHTTPServer] start];//开启http服务
    return YES;
}

#pragma mark - 程序意外暂行
- (void)applicationWillTerminate:(UIApplication *)application {
    [[NIHTTPServer sharedNIHTTPServer] stop];
}

@end

 ViewController.h

//
//  ViewController.m
//  IosHttpServer
//
//  Created by  罗若文 on 16/6/24.
//  Copyright © 2016年 罗若文. All rights reserved.
//

#import "ViewController.h"
#import <NewIdeasAPI_LocHttpServer/NewIdeasAPI_LocHttpServer.h>

@interface ViewController ()
@property (strong, nonatomic) IBOutlet UIButton *localhost;
@property (strong, nonatomic) IBOutlet UIButton *loaclhost_1;
@property (strong, nonatomic) IBOutlet UIButton *localhost_login;
@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    
    //局域网内可以用浏览器访问http://手机ip:端口/1/1.do  得到该数据
    [NIHTTPServer setActionResponseHtml:@"<html><head><title>测试</title></head><body><h1>html页面</h1><p>内容</p></body></html>" action:@"/1/1.do"];
    
    //局域网内可以用浏览器访问http://手机ip:端口/login.do  得到该数据
    [NIHTTPServer setActionResponseData:@"这边可以设置/login.do路径下可以得到的字符串" action:@"/login.do"];
    
    //这方法可以设置在请求本机http服务的时候,在Response返回数据之前执行testHttp方法
    [NIHTTPServer setMethodForHTTPServer:@selector(testHttp:) methodObject:self];

}

-(void)testHttp:(NSString *)action{
    //这边可以拦截action,判断做对应的操作,可以控制对应的action要返回的动态数据
    if([@"/" isEqualToString:action]){
        //同步请求数据
        NSString *dataUrl = [NSString stringWithFormat:@"https://git.oschina.net/luoruowen/LRWplist/raw/master/Mbomc.plist"];
        dataUrl = [dataUrl stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
        NSURL *url = [NSURL URLWithString:dataUrl];
        NSString *responseString = [NSString stringWithContentsOfURL:url encoding:NSUTF8StringEncoding error:nil];
        //将数据放入到
        [NIHTTPServer setActionResponseData:responseString action:action];
    }
}

- (IBAction)localhost:(UIButton *)sender {
    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"http://127.0.0.1:8080/"]];
}

- (IBAction)loaclhost_1:(UIButton *)sender {
    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"http://127.0.0.1:8080/1/1.do"]];
}

- (IBAction)localhost_login:(UIButton *)sender {
    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"http://127.0.0.1:8080/login.do"]];
}

- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

@end

Settings.plist

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>HTTPServerConfigure</key>
	<dict>
		<key>说明</key>
		<string>这边配置扩展http服务端口(默认8080)和action路径(action路径至少要配置一个&quot;/&quot;)</string>
		<key>HTTP_SERVER_PORT</key>
		<real>8080</real>
		<key>HTTP_SERVER_ACTION</key>
		<array>
			<string>/</string>
			<string>/login.do</string>
			<string>/1/1.do</string>
		</array>
	</dict>
</dict>
</plist>

 

我整理的一个ios扩展http服务 NewIdeasAPI_LocHttpServer.framework

上面demo下载地址:http://git.oschina.net/shareDemoCode/IosHttpServer

 

© 著作权归作者所有

luoruowen

luoruowen

粉丝 2
博文 9
码字总数 4663
作品 1
福州
程序员
私信 提问
iphone开发资源汇总

iphone开发资源汇总 如何用Facebook graphic api上传视频: http://developers.facebook.com/blog/post/532/ Keychain保存数据封装: https://github.com/carlbrown/PDKeychainBindingsContr......

长平狐
2012/10/25
261
0
ArcGIS for iOS 开发系列(1) – 基本概念

1.1 iOS简介 2006年苹果公司发布了智能手机iPhone,卓越的外形设计和新颖的触摸式交互,令其迅速风靡全球,随后发布的平板电脑iPad同样也取得了巨大成功,二者所搭载的都是iOS智能移动操作系...

长平狐
2012/11/28
882
0
iphone开发资源汇总

学习过程当中查找到的资料,做一个记录,以便更多朋友查看。 开发的过程有时候是简单的,因为我们可以站在巨人的肩上,跳得更高,走得更远。 如何用Facebook graphic api上传视频: http://d...

长平狐
2012/08/13
487
0
十八般武艺!移动应用开发者必备的18款利器

“工欲善其事,必先利其器”。身为一名移动应用的开发者,光有技术是不够的,必备的应用可以为您的开发工作如虎添翼。随着Android与iOS系统的不断更新换代,相关的的应用也层出不穷,本文推荐...

looen
2011/11/25
2.3K
3
(转)直接拿来用!最火的iOS开源项目(一)

AFNetworking 在众多iOS开源项目中,AFNetworking可以称得上是最受开发者欢迎的库项目。AFNetworking是一个轻量级的iOS、Mac OS X网络通信类库,现在是GitHub上第三大Objective-C库。它建立在...

孙启超
2013/06/21
3.8K
0

没有更多内容

加载失败,请刷新页面

加载更多

数据流中的中位数

参考:https://sunweiguo.github.io/2019/03/18/%E5%89%91%E6%8C%87offer/%E3%80%90%E9%9D%A2%E8%AF%95%E9%A2%9863-%E6%95%B0%E6%8D%AE%E6%B5%81%E4%B8%AD%E7%9A%84%E4%B8%AD%E4%BD%8D%E6%95......

Garphy
21分钟前
4
0
微服务下配置管理中心 SCCA

SCCA 简介 SCCA 全称 spring-cloud-config-admin,微服务下 Spring Boot 应用(包含 Spring Cloud)统一的配置管理平台。 Github 地址:spring-cloud-config-admin 核心贡献者:程序员DD | ...

SpringForA
23分钟前
5
0
spring 是如何注入对象的和bean 创建过程分析

文章目录: beanFactory 及 bean 生命周期起步 BeanFactory refresh 全过程 BeanFactoryPostProcessor 和 BeanPostProcessor 解析 使用 BeanPostProcessor 实现 aop 和 springboot Cache 相关......

sanri1993
26分钟前
9
0
@PathVariable使用

public interface ProductInfoRepository extends JpaRepository<ProductInfo, String>{ List<ProductInfo> findByProductId(String productId);} ProductInfoController @Autowired ......

观海562
37分钟前
6
0
利用CSS禁止手机长按出现气泡: 复制、选择等功能

可以用 * ,也可作用于一个div div{  -webkit-touch-callout:none;  /*系统默认菜单被禁用*/  -webkit-user-select:none; /*webkit浏览器*/  -khtml-user-select:none; /*早期浏览...

蓝小驴
今天
9
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部