库AFNetworking的使用

库AFNetworking的使用

1.GET请求(html,json,xml)

#pragma mark -GET请求
-(void)testGetRequset{

    NSString *urlString = @"http://www.baidu.com";
    urlString = @"http://m.weather.com.cn/data/101010100.html";

    //定义AFNetworking管理
    AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
    //注意: 默认认为数据是JSON,content-type也是JSON, responseObject是解析的字典和数组, 不是产生错误Code=-1016
    //解决: 设置解析器为HTTP形式, 下载回来是NSData
    manager.responseSerializer = [AFHTTPResponseSerializer serializer];
    [manager GET:urlString parameters:nil success:^(AFHTTPRequestOperation *operation, id responseObject) {

        //responseObject重要参数,包含下载数据
        //NSLog(@"o = %@",responseObject);
        NSString *str = [[NSString alloc] initWithData:responseObject encoding:NSUTF8StringEncoding];
        NSLog(@"str = %@",str);

    } failure:^(AFHTTPRequestOperation *operation, NSError *error) {
        NSLog(@"error = %@",error);
    }];
}

2.POST请求

#pragma mark - POST请求
-(void)testPostRequest{

    //POST接口:http://quiet.local/testdir/login.php
    //参数1: @"user" : @"quiet"
    //参数2: @"password" : @"123"
    NSString *urlString = @"http://quiet.local/testdir/login.php";

    AFHTTPRequestOperationManager *mamager = [AFHTTPRequestOperationManager manager];
    mamager.responseSerializer = [AFHTTPResponseSerializer serializer];

    //参数1: 传入地址
    //参数2: 传入URL请求的参数, 格式传入字典
    [mamager POST:urlString parameters:@{@"user":@"quiet",@"password":@"123"} success:^(AFHTTPRequestOperation *operation, id responseObject) {
        NSString *str = [[NSString alloc] initWithData:responseObject encoding:NSUTF8StringEncoding];
        NSLog(@"str = %@",str);
    } failure:^(AFHTTPRequestOperation *operation, NSError *error) {
        NSLog(@"error = %@",error);
    }];
}

3.上传文件(上传图片)

#pragma mark - 上传文件(上传图片)
-(void)testUploadFile{
    //POST上传接口
    NSString *urlString = @"http://quiet.local/uploadtest/upload.php";
    //参数名: image : 参数值是图片
    AFHTTPRequestOperationManager *mamager = [AFHTTPRequestOperationManager manager];
    mamager.responseSerializer = [AFHTTPResponseSerializer serializer];
    [mamager POST:urlString parameters:nil constructingBodyWithBlock:^(id<AFMultipartFormData> formData) {

        //实现: 上传的数据附加到请求体中
        //mimeType 多用途互联网邮件扩展类型, 每种文件都有一个类型
        NSString *path = [[NSBundle mainBundle] pathForResource:@"2.jpg" ofType:nil];
        NSLog(@"path = %@",path);
        [formData appendPartWithFileURL:[NSURL fileURLWithPath:path] name:@"image" fileName:@"quiet1.jpg" mimeType:@"image/jpeg" error:nil];

    } success:^(AFHTTPRequestOperation *operation, id responseObject) {
        NSString *str = [[NSString alloc] initWithData:responseObject encoding:NSUTF8StringEncoding];
        NSLog(@"str = %@",str);
    } failure:^(AFHTTPRequestOperation *operation, NSError *error) {
        NSLog(@"error = %@",error);
    }];
}

4.下载文件(下载图片)

#pragma mark -下载文件
-(void)testDownloadFile{
    NSString *urlString = @"http://imgcache.qq.com/club/item/avatar/zip/7/i87/all.zip";

    //创建会话管理器对象(通过默认配置)
    AFURLSessionManager *manager = [[AFURLSessionManager alloc] initWithSessionConfiguration:[NSURLSessionConfiguration defaultSessionConfiguration]];

    NSURLSessionDownloadTask *task = [manager downloadTaskWithRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:urlString]] progress:nil destination:^NSURL *(NSURL *targetPath, NSURLResponse *response) {

        //返回文件保存位置
        NSString *path = [NSString stringWithFormat:@"%@/Documents/all.zip",NSHomeDirectory()];
        NSLog(@"path = %@",path);
        return [NSURL fileURLWithPath:path];

    } completionHandler:^(NSURLResponse *response, NSURL *filePath, NSError *error) {
        NSLog(@"下载完成");
    }];
    //启动任务
    [task resume];
}

5.监控网络状态

-(void)testMonitorNetworkStatus{

    AFHTTPRequestOperationManager *manager = [[AFHTTPRequestOperationManager alloc] initWithBaseURL:[NSURL URLWithString:@"www.baidu.com"]];
    [manager.reachabilityManager setReachabilityStatusChangeBlock:^(AFNetworkReachabilityStatus status) {
        NSDictionary *dict [email protected]{
    @(AFNetworkReachabilityStatusUnknown):@"未知",
    @(AFNetworkReachabilityStatusNotReachable):@"不可达",
    @(AFNetworkReachabilityStatusReachableViaWWAN):@"GPRS",
    @(AFNetworkReachabilityStatusReachableViaWiFi):@"Wifi",};

        NSLog(@"状态为 %@",dict[@(status)]);

    }];
    //开启状态监视
    [manager.reachabilityManager startMonitoring];

}
时间: 2024-11-05 23:31:30

库AFNetworking的使用的相关文章

iOS开发-使用第三方库AFNetWorking解析JSON和XML数据

利用第三方库AFNetWorking解析网络请求的JSON和MXL数据具有很多方便的地方. 第三方库的下载地址:https://github.com/AFNetworking/AFNetworking 导入的包和宏定义 1 #import "ViewController.h" 2 #import "AFNetworking.h" 3 #import "GDataXMLNode.h" 4 5 //json地址 6 #define kJSONUrlS

iOS网络编程(7) 第三方开源库-----&gt;AFNetworking

AFNetworking是一个为 iOS 和 Mac OSX 制作的令人愉快的网络库,它建立在URL 装载系统框架的顶层,内置在Cocoa里,扩展了强有力的高级网络抽象.它的模块架构被良好的设计,拥有丰富的功能,因此,使用起来,必定赏心悦目. @原文链接https://github.com/AFNetworking/AFNetworking,我在此基础上了点配置修改 @介绍 1.支持HTTP请求和基于REST的网络服务(包括GET.POST. PUT.DELETE等) 2.支持ARC 3.要求i

iOS下的Http库AFNetworking

在iOS下开发一直是用ASIHTTPRequest库,ASIHTTPRequest已经停止更新,看了这个文章http://www.oschina.net/news/61416/github-top-100-objective-c-projects (原文https://github.com/Aufree/trip-to-iOS/blob/master/Top-100.md)的AFNetworking库,感觉还不错. AFNetworking库的地址是 https://github.com/AFN

第三方库AFNetworking 3.1.0的简单使用

AFNetworking是一个 在iOS开发中 使用非常多网络开源库.它是一个轻量级的网络请求API类库. 适用于iOS以及Mac OS X.它构建于在(Apple iOS开发文档) NSURLConnection ,  NSOperation , 以及其他熟悉的Foundation技术之上. 下面的类已从AFNetworking 3.0中废弃: AFURLConnectionOperation AFHTTPRequestOperation AFHTTPRequestOperationManag

iOS 第三方开源库-----&gt;AFNetworking

AFNetworking AFNetworking是一个为 iOS 和 Mac OSX 制作的令人愉快的网络库,它建立在URL 装载系统框架的顶层,内置在Cocoa里,扩展了强有力的高级网络抽象.它的模块架构被良好的设计,拥有丰富的功能,因此,使用起来,必定赏心悦目. 原文链接https://github.com/AFNetworking/AFNetworking 介绍 1.支持HTTP请求和基于REST的网络服务(包括GET.POST. PUT.DELETE等) 2.支持ARC 3.要求iOS

使用第三方库AFNetworking时遇到的问题

在AFSecurityPolicy.m这个类中,会报这样三个错误 1. Use of undeclared identifier 'kSecFormatUnknown' 2. Use of undeclared identifier 'kSecItemPemArmour' 3. Implicit declaration of function 'SecItemExport' is invalid in C99 网上搜索后,发现只要在.pch文件中加入如下代码即可: #ifndef TARGET_

Xcode7 下导入第三方库 图文介绍

网上没有很好的图文介绍,干脆我自己写一个好了,方便新手入门. 这里以导入著名的第三方网络库AFNetWorking和数据库fmdb为例进行说明. 好,下面开始. 一.下载源文件并解压 二.选择需要使用的库,直接拖到项目中(可以提前建个专门放第三方库的Group) 我这里只需要AFNetWorking就行,看情况,如果还需要UIKit+AFNetworking文件夹,请一并选中 关于 AFNetWorking 和 UIKit+AFNetworking区别请看这篇帖子: blog.csdn.net/

iOS(iPhone,iPad))开发(Objective-C)开发库常用库索引

http://www.code4app.com 这网站不错,收集各种 iOS App 开发可以用到的代码示例 http://www.cocoacontrols.com/ 英文版本的lib收集 http://www.objclibs.com/ 精品lib的收集网站 http://www.ityran.com/forum-61-1.html 泰然代码仓库 ---------------------- emoji ---------------------- http://www.easyapns.c

AFNetworking网上加载数据及JSON解析

引用第三方库AFNetworking #import "AFNetworking.h" #import "UIKit+AFNetworking.h" - (void)downloadData { NSString *urlString = [NSString stringWithFormat:LIMIT_URL,_page,_categoryId]; AFHTTPRequestOperationManager *manager = [AFHTTPRequestOpe