AFNetworking学习——如何做数据请求

本文通过实战演示如何在iOS应用中使用AFNetworking库进行GET和POST请求。首先介绍了如何配置项目并导入库文件,随后详细展示了创建GET请求方法的过程,包括请求成功和失败时的处理方式。接着,文章进一步解释了如何实现POST请求,涵盖了参数设置、请求格式及响应处理等内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

首先,写这个,主要是便于整理自己学习的知识,记录一下,方便以后忘记了的时候可以回头看看。

前提⚠️:已创建好一个oc项目,并且已经将AFNetworking库文件导入到项目中了,至于不知道这一步或者忘记怎么弄了,参考我上一篇博客cocoa pods的安装以及使用》。

==========================进入正题========================

(1)打开项目,⚠️打开的是项目名.xcworkspace文件。

(2)找一个api接口,我找的是天气的API“http://www.weather.com.cn/adat/sk/101010100.html”,直接打开该链接,可以看到内容,该内容即请求返回的结果,(可以在网上随便搜一个你顺眼的:天气API 免费)这里,获取天气信息,肯定就是做Get请求。

(3)打开ViewController,导入头文件。


(4)创建一个方法,用于做请求的,这里,例子是Get请求。


(5)调用该方法,编译运行,查看控制台输出信息。



请求失败,错误提示:http请求是不安全的。

(6)在info.plist文件中添加该key。


(7)重新运行,查看控制台响应信息。


请求成功,返回了应有的数据。

=====================下面是Post请求的方法==================

- (void)postRequest {
    AFHTTPSessionManager *manager =[AFHTTPSessionManager manager];
    NSString *urlString = @"http://api.userzone.me/userinfo/add";
//    iOS程序访问HTTP资源时需要对URL进行Encode,比如像拼出来的 http://ami.ac?p1=%+&sa f&p2=中文,其中的中文、特殊符号&%和空格都必须进行转译才能正确访问
//    NSString *str =[content stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
    
    NSDictionary *params = @{@"name": @"zfn", @"age": @23, @"sex": @"F"};
//  默认提交请求的数据是二进制的,返回格式是JSON;如果提交数据是JSON的,需要将请求格式设置为AFJSONRequestSerializer
//  设置请求格式
    manager.requestSerializer = [AFJSONRequestSerializer serializer];
//    设置返回格式
    manager.responseSerializer = [AFHTTPResponseSerializer serializer];
    [manager POST:urlString parameters:params
         progress:^(NSProgress * _Nonnull uploadProgress) {
//      进度条
    } success:^(NSURLSessionDataTask * _Nonnull task, id  _Nullable responseObject) {
//       post请求成功后的操作
        NSLog(@"post请求成功====%@",responseObject);
    } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
//       请求失败后的操作
        NSLog(@"请求失败====%@",error);
    }];
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值