网络异步连接参数解析——利用配置好的APache本地服务器做测试

来源:互联网 发布:淘宝视频开放平台网址 编辑:程序博客网 时间:2024/05/18 00:22
 本地计算机的IP地址和域名

IP地址:127.0.0.1

是回送地址,指本地机,一般用来测试使用。

无论什么程序,一旦使用回送地址发送数据,协议软件立即返回,不要进行任何网络传输。

常用测试命令:ping 127.0.0.1

域名:localhost

在计算机网络中,localhost(本地主机)是给回路网络接口的一个标准主机名,相对应的IP地址为127.0.0.1

打开本地连接,如果出现乱码,解决方法如下:


如下所示:


工程代码如下所示:

<span style="font-size:18px;">////  ViewController.m//  异步连接参数解析////  Created by apple on 15/10/26.//  Copyright (c) 2015年 LiuXun. All rights reserved.//#import "ViewController.h"#import <Foundation/Foundation.h>@interface ViewController ()@end@implementation ViewController- (void)viewDidLoad {    [super viewDidLoad];        /* 0.     此方法虽然可以直接从网址请求数据,但有时候返回的data是nil,无法打印错误信息     这个方法是同步的     dataWithContentsOfURL:url 方法是同步的,超时时长是60秒     NSData *data = [NSData dataWithContentsOfURL:url];     UIImage *image = [UIImage imageWithData:data];     */        // 1. url—— 访问的是自己主机的服务器  注意地址中不可含有中文字符    NSURL *url = [NSURL URLWithString:@"http://127.0.0.1/demo.json"];        // 2. 建立一个请求对象    /**   第一种方式     NSURLRequest *request = [NSURLRequest requestWithURL:url];     */        /**     第二种方式     参数: url:资源路径     cachePolicy : 资源策略     timeoutInterval :超时时间,默认是60秒(默认超过60秒服务器无响应就返回请求失败信息)。一般手动设置为15~20秒     SDWebImage的超时时长设置为15秒     AFN使用的是系统的60秒     */    NSURLRequest *request = [NSURLRequest requestWithURL:url cachePolicy:0 timeoutInterval:20];        // 3. 建立连接,发送请求到服务器    /**     request:请求     queue:队列,这个队列,是完成以后,回调block执行的队列,也就是说是数据请求完成执行完成代码块才使用的队列     Asynchronous:只要是异步,肯定会开新的线程。     Handler:网络访问完成以后执行的代码块     response:服务器的响应(包含响应的信息,响应头之类的...  到下载的时候才会关心此参数)     data:返回的二进制数据     connectionError:服务返回的错误, 只要有网络访问,就有可能有错误          使用场景:如果下载的是压缩包,解压缩也是一个耗时操作。     如果在block内有需要执行耗时操作,就把queue指定为子线程,然后在耗时操作执行完毕获得主线程并在主线程上更新UI。  如果block块内没有耗时操作要执行或只需要更新UI,就直接执行queue参数为主线程即可     */    [NSURLConnection sendAsynchronousRequest:request queue:[[NSOperationQueue alloc] init ]completionHandler:^(NSURLResponse *response, NSData *data, NSError *connectionError) {        // 网络请求完成以后会调用这段代码,从服务器获得二进制数据                if (connectionError || data == nil) {            NSLog(@"您的网络不给力,请稍后再试");            return;        }                // 假设是解压缩——耗时操作        NSLog(@"%@", [NSThread currentThread]);                //在主线程更新UI        dispatch_async(dispatch_get_main_queue(),^{            NSLog(@"%@------%@", [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding], [NSThread currentThread]);                    });    }];    }@end/** typedef NS_ENUM(NSUInteger, NSURLRequestCachePolicy) { NSURLRequestUseProtocolCachePolicy = 0, // 默认缓存策略,会自动缓存  NSURLRequestReloadIgnoringLocalCacheData = 1, NSURLRequestReload(刷新)Ignoring(忽略)Local(本地)CacheData (缓存数据)= 1,   刷新忽略本地数据,即每次都从服务器去加载数据,忽略本地数据  NSURLRequestReloadIgnoringLocalAndRemoteCacheData = 4, // Unimplemented(苹果预留参数,还未实现) ------------------------------------------------------------------------------------------------- 此两个 一般来离线访问。一般配合Reachability(苹果提供的检测网络连接的框架来使用)  // 如果用户使用的是WIFI,就使用这个策略 NSURLRequestReturnCacheDataElseLoad = 2, // 如果有缓存就使用缓存,如果没有缓存就上网。  // 检测如果使用的是3G就使用如下策略 NSURLRequestReturnCacheDataDontLoad = 3, // 如果有缓存,就是用缓存。没有就返回空,不会网络请求数据 ------------------------------------------------------------------------------------------------- NSURLRequestReloadRevalidatingCacheData = 5, // Unimplemented(苹果预留参数,还未实现) };  */</span>
运行结果如下所示:



1 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 7岁儿童头睡偏了怎么办 婴儿后脑睡平了怎么办 六个月宝宝免疫力低怎么办 十个月宝宝食烧怎么办 6个月宝宝感冒了怎么办 5个月宝宝腿短怎么办 5个月宝宝太瘦怎么办 宝宝喝了浓奶粉怎么办 一岁把尿不尿怎么办 五个月的宝宝大便干燥怎么办 婴儿便秘怎么办什么方法最有效 8个月小孩便秘怎么办 1个月新生儿便秘怎么办 新生儿头竖立0分怎么办 20天的宝宝便秘怎么办 出生23天的宝宝便秘怎么办 喝奶粉的宝宝便秘怎么办 抱孩子抱的驼背怎么办 4岁宝宝不拉屎怎么办 小朋友大便拉不出来怎么办 儿童便秘拉不出来怎么办 没感冒喉咙有痰怎么办 宝宝喂不进去药怎么办 新生儿只放屁不拉大便怎么办 新生儿腹胀不拉大便怎么办 8月宝宝咳嗽有痰怎么办 2个月婴儿惊吓怎么办 吃了米粉不拉屎怎么办 奇异果奶昔苦了怎么办 8个月宝宝偏瘦怎么办 一岁宝宝螺旋腿怎么办 七个月宝宝晚上咳嗽厉害怎么办 孕7个月感冒咳嗽怎么办 4个月婴儿肺炎怎么办 宝宝吃胡萝卜泥拉肚子怎么办 宝宝吃土豆泥不消化怎么办 五个月宝宝奶睡怎么办 橘子和牛奶一起吃了怎么办 半岁宝宝不喝水怎么办 一岁宝宝总是便秘怎么办 1岁的宝宝不喝水怎么办