| 注册
请输入搜索内容

热门搜索

Java Linux MySQL PHP JavaScript Hibernate jQuery Nginx
jopen
9年前发布

iOS网络get请求

  //————————————————————————————————————————————————————————————————————————————

//    0.文件很小的时候可以不使用请求的方法(坏处1、在主线程中,访问服务器的时候会卡死 2、文件太大的时候,一次性传输,服务器受不了)

//    NSURL * url = [NSURL URLWithString:@"http://192.168.2.162/logo.php?userName=jereh&pwd=123"];

//    NSData * data = [NSData dataWithContentsOfURL:url];

//    NSString * str = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];

//    NSLog(@"%@", str);

    

    

    

    //  get请求(代理方式)

////    NSURL * url = [NSURL URLWithString:@"http://192.168.2.162/logo.php?userName=jereh&pwd=123"];

//    NSURL * url = [NSURL URLWithString:@"http://192.168.2.162/test2.rar"];//请求大的数据

//    

//    //通过URL建立请求对象

//    NSURLRequest * request = [NSURLRequest requestWithURL:url];

//    

//    //创建NSURLConnection 对象用来连接服务器并且发送请求

//    NSURLConnection * conn = [[NSURLConnection alloc] initWithRequest:request delegate:self];

//    [conn start];//新版本可以不用写

    

//————————————————————————————————————————————————————————————————————————————

//请求主要使用的四个代理方法(异步的方法)


//接受到相应(只调用一次,请求成功,发送数据前调用)

- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response

{

    resultData = [NSMutableData data];//数据接收的对象一般在这里初始化

}


//接受到数据(发送数据的时候调用,大文件会自动分块传输,这个方法调用多次)

- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data

{

    [resultData appendData:data];//服务器每一次发送多少数据

    NSLog(@"%li", resultData.length);


}


//结束下载(数据传输完毕)

- (void)connectionDidFinishLoading:(NSURLConnection *)connection

{

    NSDictionary * dic = [NSJSONSerialization JSONObjectWithData:resultData options:NSJSONReadingAllowFragments error:nil];

    NSLog(@"%@", dic);

}



//请求失败(链接不上服务器,网址错误会调用。密码不对等不会调用)

- (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error

{

    NSLog(@"%@", error);

}


@end