1.http简介 http : 超文本传输协议(HTTP, HyperText Transfer Protocol)是互联网上应用最普遍的一种网络协议,全部的WWW文 件都必须遵照这个协议,设计HTTP的最初目的是为了提供发布和接受HTML页面的方法。 HTTP是一个客户端和服务器端请求和应答的标准(TCP)。客户端是终端用户,服务器端是网站。经过使用Web浏览器、网 络爬虫或者其它的工具,客户端发起一个到服务器上指定端口(默认端口为80)的HTTP请求。 HTTP协议(HyperText Transfer Protocol,超文本传输协议)是用于从WWW服务器传输超文本到本地浏览器的传输协议 。它可使浏览器更加高效,使网络传输减小。它不只保证计算机正确快速地传输超文本文档,还肯定传输文档中的哪一部 分,以及哪部份内容首先显示(如文本先于图形)等。 2.sdk简介 软件开发工具包(SDK Software development kit) 通常都是一些被软件工程师用于为特定的软件包、软件框架、硬件平 台、操做系统等创建应用软件的开发工具的集合。 API(Application Programming Interface,应用编程接口)其实就是操做系统留给应用程序的一个调用接口,应用程 序经过调用操做系统的 API 而使操做系统去执行应用程序的命令(动做)。 3. 网络数据请求(GET) 3.1.同步get //首先将网址初始化一个能够识别的oc的字符串 NSString *urlStr = [NSString stringWithFormat:]; //若是网址中存在中文的话,要进行URLENcode NSString *newStr = [urlStr stringByAddingPercentEscapesUsingEncode:NSUTF8SreingEncoding] //构建网络URL对象 NSURL *url = [NSURL URLWithString:newStr]; //建立网络请求 NSURLRequest *request = [NSURLRequest requestWithURL:url]; //创立链接 NSURLResponse *response = nil; NSError *error = nil; NSData *data = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:& error]; //解析获得的数据 NSDictionary *dic = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingAllowFragment s error:nil]; 3.2.异步get //建立URL NSURL *url = [NSURL URLWithString:@"http://172.16.12.183/index.php"]; //建立请求对象 NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url]; //解析数据(BLock) [NSURLConnection sendAsynchronousRequest:request queue:[NSOperationQueue mainQueue] completionHandler:^(NSURLResponse *response, NSData *data, NSError *connectionError) { NSDictionary *dic = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingAllowFragments error:nil]; 4. 网络数据请求(POST) 4.1.同步post //建立URL NSURL *url = [NSURL URLWithString:@""]; //准备请求对象 NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url]; [request setHTTPMethod:@"POST"]; //3.准备参数 NSString *param = [NSString stringWithFormat:@"userName=%@&password=%@",self.UserName.text,self.P assWard.text]; //将参数转为NSData NSData *paramData = [param dataUsingEncoding:NSUTF8StringEncoding]; [request setHTTPBody:paramData]; //创立链接 NSData *data = [NSURLConnection sendSynchronsRequest:request returningResponse:nil error:nil]; //解析数据 NSDictionary *dic = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingAllowFragme nts error:nil]; 4.2 异步post //1.建立URL NSURL *url = [NSURL URLWithString:@"http://172.16.12.183/index.php"]; //2.准备请求对象 NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url]; [request setHTTPMethod:@"POST"]; //3.准备参数 NSString *param = [NSString stringWithFormat:@"userName=%@&password=%@",self.UserName.text,self.PassWard.text]; //将参数转为NSData NSData *paramData = [param dataUsingEncoding:NSUTF8StringEncoding]; [request setHTTPBody:paramData]; //创建链接 NSURLConnection *connection = [NSURLConnection connectionWithRequest:request delegate:self];// 协议要写上 //4.启动链接 [connection start]; //代理协议的方法 //已经收到响应 - (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response { _receiveData = [NSMutableData data]; } //开始接受数据 - (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data { //屡次执行 [_receiveData appendData:data];//拼接数据 } //结束接受数据 - (void)connectionDidFinishLoading:(NSURLConnection*)connection { //解析 NSDictionary *dic = [NSJSONSerialization JSONObjectWithData:_receiveData options:NSJSONReadingAll owFragments error:nil]; NSLog(@"%@",dic); } //方式错误 - (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error { } 5. GET和POST的区别: 1. GET请求的接口会包含参数部分,参数做为网址的一部分,服务器地址与参数之间经过?来间隔,POST会将服务器地址 与参数进行分开,请求接口中只有服务器地址,而参数会做为请求的一部分,提交后台服务器 2. GET请求参数会出如今接口中,不安全,而POST请求相对安全 3.虽然GET和POST请求均可以请求和提交数据,可是通常的GET多用于从后台请求数据,POST多用于向后台提交数据。 6. 同步和异步的区别: 1. 同步链接:主线程去请求数据,当数据请求完毕以前,其余线程一概不响应,会形成程序假死现象。 2. 异步链接:会单独开一个线程去处理网络请求中的数据,主线程依然处于交互状态,程序运行流畅。