iOS开发--Swift 基于AFNetworking 3.0的网络请求封装
Swift和OC基于AFNetworking的网络请求流程相同, 就是语法不同, 对于Swift语法不是很清楚的同学, 建议多看看API文档, 自己多多尝试. 写过OC的应该都明白每句话做什么的, 就不过多解释了.
之前有讲过如何进行混编, 所以集成AFNetworking的过程就不再赘述
直接上代码, 不废话,
import UIKit
class InternetDataRequeset {
//Post请求时, Body字符串转换成字典方法
//设置类型为静态方法
static func changeStringToDictionary(string : String)->NSDictionary{
let dic: NSMutableDictionary = NSMutableDictionary()
let array = string.componentsSeparatedByString("&")
for str : String in array{
let tempArray = str.componentsSeparatedByString("=")
dic.], forKey: tempArray[])
}
return dic
}
//静态网络请求方法, GET请求, POST请求均适用, POST需要参数字典, 可由上一个方法获得
//urlString: 网络请求链接字符串
//bodyDic: Post请求参数字典(可选类型)
//data()->(): 闭包函数, 基本等价于OC中的block, 用于数据的回调.
static func getDataByString(var urlString urlSting: String, bodyDic: NSDictionary!, data: (data: AnyObject) -> ()){
//字符串的转码
urlSting = urlSting.stringByAddingPercentEncodingWithAllowedCharacters(NSCharacterSet.URLQueryAllowedCharacterSet())!
//创建管理者对象
let manager = AFHTTPSessionManager()
//设置允许请求的类别
manager.responseSerializer.acceptableContentTypes = NSSet(objects: "text/plain", "text/json", "application/json","text/javascript","text/html", "application/javascript", "text/js") as? Set<String>
//开始请求
if bodyDic == nil {
manager.GET(urlSting, parameters: nil, progress: { (downloadProgress: NSProgress) -> Void in
}, success: { (task: NSURLSessionDataTask, responseObject: AnyObject?) -> Void in
data(data: responseObject!)
}, failure: { (task: NSURLSessionDataTask?, error : NSError) -> Void in
print("请求失败")
})
}
else{
manager.POST(urlSting, parameters: bodyDic, progress: { (downloadProgress: NSProgress) -> Void in
}, success: { (task: NSURLSessionDataTask, responseObject: AnyObject?) -> Void in
data(data :responseObject!)
}, failure: { (task: NSURLSessionDataTask?, error : NSError) -> Void in
print("请求失败")
})
}
}
}
这只是基本的网络请求, 如果需要对请求头尾进行加工, 修改下函数即可.
iOS开发--Swift 基于AFNetworking 3.0的网络请求封装的更多相关文章
- iOS开发--Swift 基于MVC设计模式的简单的tableViewDemo
如果说MVC是最好的设计模式, 可能很多人并不赞同, 但是如果说MVC是最主流, 应用面最广的设计模式, 我想这是毫无争议的. 不说废话, 直接演示在Swift中如何使用MVC新建工程(我并没有新建文 ...
- iOS开发Swift篇—(一)简单介绍
iOS开发Swift篇—简单介绍 一.简介 Swift是苹果于2014年WWDC(苹果开发者大会)发布的全新编程语言 Swift在天朝译为“雨燕”,是它的LOGO 是一只燕子,跟Objective-C ...
- iOS开发Swift篇—(二)变量和常量
iOS开发Swift篇—(二)变量和常量 一.语言的性能 (1)根据WWDC的展示 在进行复杂对象排序时Objective-C的性能是Python的2.8倍,Swift的性能是Python的3.9倍 ...
- iOS开发Swift篇—(三)字符串和数据类型
iOS开发Swift篇—(三)字符串和数据类型 一.字符串 字符串是String类型的数据,用双引号""包住文字内容 let website = "http://www ...
- iOS开发Swift篇—(四)运算符
iOS开发Swift篇—(四)运算符 一.运算符 1.Swift所支持的部分运算符有以下一些 赋值运算符:= 复合赋值运算符:+=.-= 算术运算符:+.-.*./ 求余运算符:% 自增.自减运算符: ...
- iOS开发Swift篇—(五)元组类型
iOS开发Swift篇—(五)元组类型 一.元组类型介绍 1.什么是元组类型 元组类型由 N个 任意类型的数据组成(N >= 0),组成元组类型的数据可以称为“元素” 示例: let posit ...
- iOS开发Swift篇—(六)流程控制
iOS开发Swift篇—(六)流程控制 一.swift中的流程控制 Swift支持的流程结构如下: 循环结构:for.for-in.while.do-while 选择结构:if.switch 注意:这 ...
- iOS开发Swift篇—(九)属性
iOS开发Swift篇—(九)属性 一.类的定义 Swift与Objective-C定义类的区别 Objective-C:一般需要2个文件,1个.h声明文件和1个.m实现文件 Swift:只需要1个. ...
- iOS开发Swift篇(02) NSThread线程相关简单说明
iOS开发Swift篇(02) NSThread线程相关简单说明 一 说明 1)关于多线程部分的理论知识和OC实现,在之前的博文中已经写明,所以这里不再说明. 2)该文仅仅简单讲解NSThread在s ...
随机推荐
- java中synchronized关键字的用法
在java编程中,经常需要用到同步,而用得最多的也许是synchronized关键字了,下面看看这个关键字的用法. 因为synchronized关键字涉及到锁的概念,所以先来了解一些相关的锁知识. j ...
- SQLServer存储过程中事务的使用
create proc usp_Stock @GoodsId int, @Number int, @StockPrice money, @SupplierId int, @EmpId int, ), ...
- When using SqlDependency without providing an options value, SqlDependency.Start() must be called prior to execution of a command added to the SqlDependency instance.
在调试SignalR程序时,提示一个异常:When using SqlDependency without providing an options value, SqlDependency.Star ...
- C#各种文件操作的代码与注释
C#各种文件操作的代码与注释,具体看下面代码: using System; using System.Collections.Generic; using System.Linq; using Sys ...
- Hello, Android多屏幕版
Hello, Android Multiscreen Xamarin.Android 中处理导航 在这两部指南中,我们将扩展我们前面创建的Phoneword 应用,以处理第二个屏幕.本章主要介绍安卓的 ...
- C# 模拟登陆并继续访问其他页面
using System;using System.Collections.Generic;using System.IO;using System.Linq;using System.Net;usi ...
- 点击div折叠
<!doctype html> <html> <head> <meta charset="utf-8"> <meta cont ...
- Firemonkey 控件设定字型属性及颜色
将控件 StyledSettings 的勾取消(如此才能自定样式及字型,如果勾选则依 Style 而定). 设定 TextSettings 里的 Font 属性. 使用代码寫法: CheckBox1. ...
- ios源码-ios游戏源码-ios源码下载
游戏源码 一款休闲类的音乐小游戏源码 该源码实现了一款休闲类的音乐小游戏源码,该游戏的源码很简单,而且游戏的玩法也很容易学会,只要我们点击视图中的grid,就可以 人气:2943运行环境:/Xco ...
- IT男常用软件网站整理
1. 猎豹免费WiFI. 属于wifi共享软件. 360免费wifi.. 2. 悟空VPN, 免费VPN.http://www.wkdaili.net/ 3. PLSQL. 4. WinSCP, ...