亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

4_1網絡學習第一天后感--網絡數據下載

2019-11-14 19:20:00
字體:
來源:轉載
供稿:網友

4_1網絡學習第一天后感--網絡數據下載

1、網絡數據下載包括同步下載和異步下載,一般是使用異步下載,異步下載可以利用NSURLConnection這個類。

 

2、有關數據格式,有JSON格式(多數)、xml格式。JSON格式如下

 

{} 代表字典,[] 代表數組 ,“” 代表字符串 , 100  代表NSNumber

 

 

 

3、分析網絡接口

如:@"http://iappfree.candou.com:8080/free/applications/limited?currency=rmb&page=1&category_id="

http://  (地址使用協議)     iappfree.candou.com   (主機地址)     8080  (主機端口)

free/applications/limited(網絡程序文件路徑) ?currency=rmb&page=1&category_id=  (程序參數)

 

4、NSURLConnection的同步下載代碼:

-(void)testNSURLConnectionSyncDownloadData{    //限免頁面接口    NSString *urlString=@"http://iappfree.candou.com:8080/free/applications/limited?currency=rmb&page=1&category_id=";        //發送同步URL請求    //NSURLRequest URL請求對象    NSURL *url=[NSURL URLWithString:urlString];    NSURLRequest *request=[NSURLRequest requestWithURL:url];    NSError *error=nil;    NSData *data=[NSURLConnection sendSynchronousRequest:request returningResponse:nil error:&error];    if (error==nil) {        NSString *str=[[NSString alloc]initWithData:data encoding:NSUTF8StringEncoding];        NSLog(@"str = %@",str);    }    else {        NSLog(@"下載失敗");    }}

5、NSURLConnection的異步下載代碼:

-(void)testNSURLConnectionAsyncDownloadData{    _data=[[NSMutableData alloc]init];    //限免頁面接口    NSString *urlString=@"http://iappfree.candou.com:8080/free/applications/limited?currency=rmb&page=1&category_id=";    //發起一個異步URL請求    //異步:執行了方法之后,開始下載    _connection=[[NSURLConnection alloc]initWithRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:urlString]] delegate:self startImmediately:YES];    }//下面是<NSURLConnectionDataDelegate>代理方法//接收到服務器響應執行-(void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response{    NSLog(@"接收到服務器響應執行");}//接收到數據的時候執行//注意:當數據比較大,可能會多次執行-(void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data{    [_data appendData:data];}//當數據下載完成了-(void)connectionDidFinishLoading:(NSURLConnection *)connection{//    NSLog(@"str =%@",[[NSString alloc]initWithData:_data encoding:NSUTF8StringEncoding]);        //解析JSON (把JSON轉化為NSArray或NSDictionary    NSDictionary *dict=[NSJSONSerialization JSONObjectWithData:_data options:NSJSONReadingMutableContainers error:nil];    NSArray *appList=dict[@"applications"];    for (NSDictionary *appDict in appList) {        NSLog(@"name = %@",appDict[@"name"]);    }}//下載失敗-(void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error{    NSLog(@"error =%@",error);}

 

 

6、封裝NSURLConnection(重點)

先創建一個NSObject類,

#import <Foundation/Foundation.h>@interface ZJHttPRequset : NSObject//data用來保存下載的數據@property (nonatomic,copy) NSMutableData *data;//傳人一個網站,下載完成之后,執行target中action的方法-(void)requestWithUrl:(NSString *)url target:(id)target action:(SEL)action;@end
#import "ZJHttpRequset.h"#import "AppModel.h"//消除performSelector的警告#pragma clang diagnostic ignored "-Warc-performSelector-leaks"//類擴展,有些實例變量內部使用,不想放在頭文件,就可以放在類擴展里面。@interface ZJHttpRequset ()<NSURLConnectionDataDelegate>{    NSURLConnection *_connection;        //用來保存存進來的url  target action    NSString *_url;    id _target;    SEL _action;}@end@implementation ZJHttpRequset-(void)requestWithUrl:(NSString *)url target:(id)target action:(SEL)action{    //保存存進來的變量    _url=url;    _target=target;    _action=action;        //記住要初始化data?。?!    _data=[[NSMutableData alloc]init];    //發起異步URL請求    _connection=[[NSURLConnection alloc]initWithRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:url]] delegate:self startImmediately:YES];}//NSURLConnection代理方法//接收數據-(void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data{    [_data appendData:data];}//下載完成了,執行方法-(void)connectionDidFinishLoading:(NSURLConnection *)connection{    if (_target&&[_target respondsToSelector:_action]) {        [_target performSelector:_action withObject:self];    }    //這里面的Object就是這個類本身,目的是把接收到的data傳遞}

再傳入網絡接口,利用這個封裝好的NSURLConnection類接收

@implementation ViewController- (void)viewDidLoad{    [super viewDidLoad];    //數據接口    NSString *urlString=@"http://iappfree.candou.com:8080/free/applications/limited?currency=rmb&page=1&category_id=";    //初始化數組(tabelView的數據總數組)    _dataArray =[NSMutableArray array];    //初始化自封裝好的NSURLConnection類    _request=[[ZJHttpRequset alloc]init];    [_request requestWithUrl:urlString target:self action:@selector(dealDownloadFinish:)];        //創建表視圖    [self createTableView];}//接收完成之后會觸發的方法(在自封裝的URL類中 使用PerformSelector)-(void)dealDownloadFinish:(ZJHttpRequset *)request{    //JSON解析,(獲得的是數組還是字典,需要在JASON軟件中查看)    NSDictionary *dict=[NSJSONSerialization JSONObjectWithData:request.data options:NSJSONReadingMutableContainers error:nil];    NSArray *appList=dict[@"applications"];    //利用數據模型保存網絡接口下的數據,然后把模型添加到tableView總數組    for (NSDictionary *appDict in appList) {                AppModel *model=[[AppModel alloc]initWithDict:appDict];                [_dataArray addObject:model];    }    //下載完數據,更新了總數組,一定要刷新tableview?。?!    [_tableView reloadData];}

 

7、作業

scrollView滑動

//第一步:初始化,從網絡接口下載數據-(void)createScrollView{    _allData1=[NSMutableArray array];    //陳奕迅網絡接口    NSString *urlString=@"http://mapi.damai.cn/hot201303/nindex.aspx?cityid=0&source=10099&version=30602";    _request1 =[[LCHttpRequest alloc]init];    [_request1 requestUrl:urlString withTarget:self andAction:@selector(scrollViewDownload:)];    }//第二步:下載完成后觸發的方法,把下載好的data 存入總數組-(void)scrollViewDownload:(LCHttpRequest *)request{    NSArray *arr=[NSJSONSerialization JSONObjectWithData:request.data options:NSJSONReadingMutableContainers error:nil];    for (NSDictionary *dict in arr) {        NSString *str=dict[@"Pic"];        [_allData1 addObject:str];    }    [self loadImage];}//第三步:根據下載的總數組,改變ScrollView的contenSize 同時設置其imageView-(void)loadImage{    _scrollView.contentSize=CGSizeMake(320*_allData1.count, 0);    for (int i=0; i<_allData1.count; i++) {        UIImageView *imageView=[[UIImageView alloc]initWithFrame:CGRectMake(320*i, 0, 320, 165)];        NSString *str= _allData1[i];        [imageView setImageWithURL:[NSURL URLWithString:str]];        [_scrollView addSubview:imageView];    }    //設置pageControl     _pageControl.numberOfPages=_allData1.count;    _pageControl.enabled=NO;    [self.view bringSubviewToFront:_pageControl];    _pageControl.pageIndicatorTintColor=[UIColor redColor];    //啟動定時器,讓scroView滑動    [NSTimer scheduledTimerWithTimeInterval:3.0 target:self selector:@selector(scrollViewMove) userInfo:nil repeats:YES];}//定時器觸發的方法-(void)scrollViewMove{    CGPoint pp=_scrollView.contentOffset;    if (pp.x==320*(_allData1.count-1)) {        pp.x=0;        _scrollView.contentOffset=pp;    }    else{        pp.x+=320;    [UIView animateWithDuration:2.0 animations:^{        _scrollView.contentOffset=pp;    }];    }}//<UIScrllViewDelegate> 代理方法讓pageControl跟著移動-(void)scrollViewDidScroll:(UIScrollView *)scrollView{    int page =scrollView.contentOffset.x/320;    _pageControl.currentPage=page;}

 


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
精品久久久久久久中文字幕| 国产亚洲一区二区在线| 尤物yw午夜国产精品视频明星| 中文字幕亚洲综合久久筱田步美| 国产日韩中文字幕在线| 国产精品户外野外| 国内精品模特av私拍在线观看| 2021久久精品国产99国产精品| 亚洲天堂网站在线观看视频| 91久久精品美女高潮| 亚洲a级在线观看| 在线视频免费一区二区| 欧美一级在线播放| 不用播放器成人网| 国产精品自拍小视频| 亚洲最大的av网站| 亚洲欧美日韩天堂一区二区| 日韩精品中文字幕有码专区| 亚洲欧美日韩一区在线| 日本国产高清不卡| 九九精品在线视频| 久久亚洲精品一区| 日韩欧美有码在线| 亚洲国产精品嫩草影院久久| 俺去啦;欧美日韩| 日韩日本欧美亚洲| 久久久电影免费观看完整版| 亚洲国产精久久久久久久| 国产精品wwww| 国产精品久久久久久久久免费看| 亚洲人成在线一二| 国产91色在线| 亚洲国产精品久久精品怡红院| 色综合导航网站| 欧美日韩一区二区免费视频| 日韩欧美国产高清91| 中文字幕av一区二区三区谷原希美| 国产小视频91| 国产成人精品视频在线| 日韩第一页在线| 91精品国产综合久久香蕉922| 777777777亚洲妇女| 国产精品第10页| 国产成人精品国内自产拍免费看| 欧美另类老肥妇| 精品福利一区二区| 国产欧美精品日韩| 日韩精品一区二区视频| 欧美巨乳在线观看| 日本久久亚洲电影| 国产成人亚洲综合91精品| 成人黄色短视频在线观看| 欧美老少配视频| 在线播放国产一区二区三区| 91亚洲精品一区| 欧美亚洲成人网| 国产精品久久久久久久久免费| 亚洲国产欧美久久| 亚洲成人av片在线观看| 欧美激情精品久久久久久久变态| 亚洲人成啪啪网站| 国产精品1234| 久久国内精品一国内精品| 黑人巨大精品欧美一区二区一视频| 亚洲丝袜av一区| 亚洲男人的天堂在线播放| 精品成人69xx.xyz| 亚洲成年人在线| 国产一区香蕉久久| 欧美午夜视频在线观看| 中文国产成人精品久久一| 亚洲欧洲视频在线| 日韩色av导航| 欧美丝袜一区二区三区| 成人免费自拍视频| 国产精品国产三级国产专播精品人| 亚洲精品久久久久久久久久久久| 亚洲精品少妇网址| 色偷偷av一区二区三区| 欧美精品18videos性欧美| 欧洲中文字幕国产精品| 国产精品99久久久久久www| 欧美成人午夜激情视频| 国产精品va在线播放| 色噜噜久久综合伊人一本| 国产一区二区三区视频在线观看| 成人精品在线视频| 91精品成人久久| 亚洲天堂av高清| 日韩高清不卡av| 宅男66日本亚洲欧美视频| 日韩在线视频一区| 久久99青青精品免费观看| 久久亚洲精品网站| 国产精品一区二区三区久久| 永久免费看mv网站入口亚洲| 精品自在线视频| 欧美日韩第一页| 日本三级久久久| 久久人人爽人人爽爽久久| 亚洲精品福利视频| 亚洲在线视频观看| 疯狂欧美牲乱大交777| 欧美一区第一页| 中文字幕国产日韩| 97香蕉超级碰碰久久免费软件| 午夜精品一区二区三区视频免费看| 欧美高清视频在线观看| 亚洲一区二区三区sesese| 都市激情亚洲色图| 色青青草原桃花久久综合| 日韩在线播放一区| 午夜欧美不卡精品aaaaa| 亚洲国产91精品在线观看| 国产精品综合网站| 久久国产精品电影| 亚洲精品日韩在线| 伊人久久五月天| 国产精品电影久久久久电影网| 日韩一级黄色av| 91精品国产91| 久久国产精品久久久久久久久久| 国产午夜精品一区理论片飘花| 91精品国产一区| 日韩在线播放一区| 成人精品在线观看| 国产欧美精品va在线观看| 亚洲最大成人免费视频| 欧美又大又粗又长| 亚洲精品白浆高清久久久久久| 亚洲第一中文字幕在线观看| 久久这里只有精品99| 激情av一区二区| 国产成人精品日本亚洲专区61| 国内精品久久久久久久| 久久久国产一区二区三区| 国产91在线播放九色快色| 久久久精品视频在线观看| 久久久免费精品视频| 欧美影院在线播放| 欧美日本在线视频中文字字幕| 日韩精品福利在线| 久久久久久亚洲精品不卡| 欧美理论电影在线播放| 中日韩美女免费视频网站在线观看| 久久精品国产综合| 91九色在线视频| 日韩欧美在线网址| 亚洲韩国欧洲国产日产av| 国产91在线播放| 欧美大奶子在线| 成人a免费视频| 欧美专区日韩视频| 日韩在线中文视频| 久久躁狠狠躁夜夜爽| 色综合色综合久久综合频道88| 国产欧美va欧美va香蕉在线| 国产成人精品久久久| 亚洲香蕉成视频在线观看| 国产日韩欧美在线看| 亚洲欧美国产日韩中文字幕| 欧美激情一区二区三区成人| 亚洲欧美在线磁力| 精品亚洲aⅴ在线观看|