AFNetworking GET和POST请求
GET请求
代码展示:
在storyBoard中每个请求关联一个Button
#pragma mark - get请求
- (IBAction)getRequest:(id)sender {
// 参数1:GET 请求的网址
// 参数2:拼接(body)
// 参数3:下载进度 downloadProgress
// 参数4:请求成功 responseObject:数据信息
// 参数5:请求失败 error错误信息 [self.session GET:@"http://api.yhouse.com/m/city/dynmiclist" parameters:nil progress:^(NSProgress * _Nonnull downloadProgress) {
NSLog(@"下载进度");
} success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) {
NSLog(@"请求成功%@", responseObject);
} failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
NSLog(@"请求失败");
}];
}
POST请求第一种
代码展示:
// 网络请求的头文件
#import <AFNetworking.h> @interface ViewController ()
// 通过AFHTTPSessionManager创建单例
@property (nonatomic,strong) AFHTTPSessionManager *session; @end @implementation ViewController - (void)viewDidLoad {
[super viewDidLoad]; // 初始化session对象
self.session = [AFHTTPSessionManager manager];
// 设置请求接口回来时支持什么类型的数组
self.session.responseSerializer.acceptableContentTypes = [NSSet setWithObjects:@"application/json", @"text/json", @"text/javascript",@"application/x-json",@"text/html", nil]; // Do any additional setup after loading the view, typically from a nib.
}
实现请求操作:
#pragma mark - post请求
- (IBAction)postRequest:(id)sender {
/*{
// body
do = "pri_memberlist";
"member_id" = zpHr2dsRvQQxYJxo2;
"workspace_id" = ILfYpE4Dhs2gWcuQx; // url
http://m.taskwedo.com/API/wedo1/wedo.php
}*/ // 参数1:POST 请求的网址
// 参数2:拼接(body)
// 参数3:下载进度 downloadProgress
// 参数4:请求成功 responseObject:数据信息
// 参数5:请求失败 error错误信息 // 设置URL
NSString *url = @"http://m.taskwedo.com/API/wedo1/wedo.php";
// 创建body
NSMutableDictionary *dic = [NSMutableDictionary dictionary];
[dic setValue:@"pri_memberlist" forKey:@"do"];
[dic setValue:@"zpHr2dsRvQQxYJxo2" forKey:@"member_id"];
[dic setValue:@"ILfYpE4Dhs2gWcuQx" forKey:@"workspace_id"];
// 调用方法
[self.session POST:url parameters:dic progress:^(NSProgress * _Nonnull uploadProgress) {
NSLog(@"上传进度");
} success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) {
NSLog(@"post请求成功%@", responseObject);
} failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
NSLog(@"请求失败");
}];
}

POST请求第二种
代码展示:
#pragma mark - post请求 body中包含汉字
- (IBAction)anotherPostRequest:(id)sender { // body体:
/*
address = "";
comment = "\U7c7b\U6a21\U5757\U8ba1\U5212\U7528\U5230\U7b2c\U4e09\U90e8\U5206\U4e2d\Uff0c\U5f85\U63d0\U95ee\U3001\U56de\U7b54\U79ef\U7d2f\U5230\U4e00\U5b9a\U6570\U91cf\U65f6\Uff0c\U4fbf\U4e8e\U5927\U5bb6\U7684\U95ee\U9898\U7684\U5feb\U901f\U67e5\U627e\Uff0c\U6240\U4ee5\U63d0\U95ee\U90e8\U5206\U6682\U65f6\U4e0d\U52a0\U5165\U8fd9\U4e2a";
do = "add_comment";
kind = task;
"member_id" = zpHr2dsRvQQxYJxo2;
other = "";
"task_id" = 55a47e79ec25e3641;
*/
// URL
// http://m.taskwedo.com/API/wedo1/wedo.php
// 设置URL
NSString *url = @"http://m.taskwedo.com/API/wedo1/wedo.php";
// body中带有汉字的,需要进行转码
NSString *commonContent = @"类模块计划用到第三部分中,待提问、回答积累到一定数量时,便于大家的问题的快速查找,所以提问部分暂时不加入这个";
commonContent = [commonContent stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
// 创建body
NSMutableDictionary *dict = [NSMutableDictionary dictionary];
[dict setValue:@"" forKey:@"address"];
[dict setValue:@"commonContent" forKey:@"comment"];
[dict setValue:@"add_comment" forKey:@"do"];
[dict setValue:@"task" forKey:@"kind"];
[dict setValue:@"zpHr2dsRvQQxYJxo2" forKey:@"member_id"];
[dict setValue:@"" forKey:@"other"];
[dict setValue:@"55a47e79ec25e3641" forKey:@"task_id"];
// 调用方法
[self.session POST:url parameters:dict progress:^(NSProgress * _Nonnull uploadProgress) {
NSLog(@"上传进度");
} success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) {
NSLog(@"请求成功%@", responseObject);
} failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
NSLog(@"请求失败");
}];
}
AFNetworking GET和POST请求的更多相关文章
- 基于AFNetworking封装的网络请求工具类【原创】
今天给大家共享一个我自己封装的网络请求类,希望能帮助到大家. 前提,导入AFNetworking框架, 关于修改AFN源码:通常序列化时做对text/plan等的支持时,可以一劳永逸的修改源代码,在a ...
- AFNetworking配合Swift3.0请求数据
首先用桥接或pods将AFNetworking导入项目,在这不再赘述,然后创建一个单例NetWorkTools.swift 继承:AFHTTPSessionManager import UIKit i ...
- [iOS AFNetworking框架实现HTTP请求、多文件图片上传下载]
简单的JSON的HTTP传输就不说了,看一个简单的DEMO吧. 主要明白parameters是所填参数,类型是字典型.我把这部分代码封装起来了,以便多次调用.也许写在一起更清楚点. #pragma m ...
- 基于AFNetWorking封装一个网络请求数据的类
1.新建一个继承于NSObject类的类,在.h文件中 #import "AFHTTPRequestOperationManager.h" //定义两个block来接收请求成功和失 ...
- AFNetWorking 之 Get/Post 请求的使用
1. Get 与 Post 比较 GET请求:简单业务.明文发送 POST请求:上传文件,重要信息.加密信息,.大数据信息. 2. 序列化 默认是JSon格式. // 请求的序列化 manager.r ...
- 使用AFNetworking时, 控制器点击返回销毁了, 但还是会执行请求成功或失败的block, 导致野指针异常
原本我以为是我程序框架有问题...后来才知道, 无知真可怕... __unsafe_unretained __block typeof(self) weakSelf = self; AFHTTPSes ...
- IOS网络请求之AFNetWorking 3.x 使用
前言: 计划把公司的网络请求与业务解耦,所以想着学习一下网络请求,最近学习了NSURLSession,今天来学习一下基于NSURLSession封装的优秀开源框架AFNetWorking 3.x,之前 ...
- AFNetworking 2.0指北
AFNetworking 2.0 来了 SEP 30TH, 2013 前几天 Mattt 发布了 AFNetworking 2.0,我的一个最大感慨就是,他怎么那么高产? 关于 Mattt Mattt ...
- iOS开发网络请求——大文件的多线程断点下载
iOS开发中网络请求技术已经是移动app必备技术,而网络中文件传输就是其中重点了.网络文件传输对移动客户端而言主要分为文件的上传和下载.作为开发者从技术角度会将文件分为小文件和大文件.小文件因为文件大 ...
随机推荐
- linux cmd: ps
每天一个linux命令(41):ps命令 http://www.cnblogs.com/peida/archive/2012/12/19/2824418.html Linux中的ps命令是Proces ...
- POJ 3784.Running Median
2015-07-16 问题简述: 动态求取中位数的问题,输入一串数字,每输入第奇数个数时求取这些数的中位数. 原题链接:http://poj.org/problem?id=3784 解题思路: 求取中 ...
- POJ 3461 Oulipo(模式串在主串中出现的次数)
题目链接:http://poj.org/problem?id=3461 题意:给你两个字符串word和text,求出word在text中出现的次数 思路:kmp算法的简单应用,遍历一遍text字符串即 ...
- python列表类型中的陷阱
在python中对列表使用重复运算符*进行操作时,只是简单的进行了浅复制,内部的结构并没有复制过来,所以下面的例子结果是这样的: >>> lists =[[]]*3 >> ...
- .net 基础错误-string.replace 方法
1.string string.Replace(string oldValue,string newValue) 返回一个新的字符串,其中当前示例中出现的所有指定字符串都替换另一个指定字符串 错误:总 ...
- (转)C++中extern “C”含义深层探索
(转)C++中extern “C”含义深层探索 转自: http://www.cppblog.com/Macaulish/archive/2008/06/17/53689.html 1.引言 C++语 ...
- windows server 2008/2012 无法安装AD域解决方法记录
安装活动目录之前需要一些准备工作和前提条件的. 有管理员的权限 至少有一个足够大的NTFS文件系统的分区或动态卷 需要DNS服务配合,因此需要安装DNS服务 最好使用dcpromo命令来进行安装 最终 ...
- jQuery事件函数bind,live,delegate的区别
DOM树 首先,可视化一个HMTL文档的DOM树是很有帮助的.一个简单的HTML页面看起来就像是这个样子: 事件冒泡(又称事件传播) 当我们点击一个链接时,其触发了链接元素的单击事件,该事件则引发任何 ...
- nginx启动、开机自启动、重启、关闭
yum -y install nginx # yum info nginx Loaded plugins: fastestmirror Loading mirror speeds from cach ...
- 10003 Cutting Sticks(区间dp)
Cutting Sticks You have to cut a wood stick into pieces. The most affordable company, The Analog ...