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必备技术,而网络中文件传输就是其中重点了.网络文件传输对移动客户端而言主要分为文件的上传和下载.作为开发者从技术角度会将文件分为小文件和大文件.小文件因为文件大 ...
随机推荐
- docker基础入门之一
一.概述 1.传统虚拟化技术: 纯软件的虚拟化是通过对于硬件层的模拟从而实现允许运行多个操作系统: 硬件辅助虚拟化需要硬件层面对于虚拟化的支持,类似Intel-VT技术等,具有更高的运行效率: 解决方 ...
- java web分享ppt大纲 -- servlet容器简介
今天在公司分享了java web的ppt,把ppt大纲放在这里,希望可以帮助需要的人 servlet容器简介 定义 狭义上的,servlet容器为java Web应用提供运行时环境,负责管理servl ...
- Java虚拟机体系结构
转自:http://www.cnblogs.com/java-my-life/archive/2012/08/01/2615221.html JAVA虚拟机的生命周期 一个运行时的Java虚拟机实例的 ...
- java 去除数组重复数据,并输出重复数据值
/** * 去除重复数据 * @author Sunqinbo */ public class RemoveDuplicateData { public static void main(String ...
- js表格排序 & 去除字符串空格
// a:列数 bool:排序升序判断参数 true false Str:支持多列 function newUnitSort(a, bool, str) { var oTable = document ...
- [LeetCode]题解(python):109-Convert Sorted List to Binary Search Tree
题目来源: https://leetcode.com/problems/convert-sorted-list-to-binary-search-tree/ 题意分析: 给定一个排好序的链表,将这个链 ...
- 合理设计C代码 函数笔记
本文首先用判断一个数字是否为素数使用For循环实现做例子,之后用函数完成多个功能. 什么是素数? 素数又成质数,不包含1和0.通俗的去说就是它除了能表示为它自己和1的乘积以外,不能表示为任何其它两个整 ...
- Web Api帮助页面或用户手册
我这么玩Web Api(一):帮助页面或用户手册(Microsoft and Swashbuckle Help Page) 前言 你需要为客户编写Api调用手册?你需要测试你的Api接口?你需要和 ...
- 【Untiy3D 游戏开发之一】Unity3D For Window/Mac最新4.2.0版本破解教程
转载请标明:转载自[小枫栏目],博文链接:http://blog.csdn.net/rexuefengye/article/details/11646885 一.Unity3D For Mac 1.首 ...
- Airport(未解决。。。)
Airport Time Limit: 3000/1500 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Sub ...