首先,写这个,主要是便于整理自己学习的知识,记录一下,方便以后忘记了的时候可以回头看看。
前提⚠️:已创建好一个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);
}];
}