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的网络请求封装的更多相关文章

  1. iOS开发--Swift 基于MVC设计模式的简单的tableViewDemo

    如果说MVC是最好的设计模式, 可能很多人并不赞同, 但是如果说MVC是最主流, 应用面最广的设计模式, 我想这是毫无争议的. 不说废话, 直接演示在Swift中如何使用MVC新建工程(我并没有新建文 ...

  2. iOS开发Swift篇—(一)简单介绍

    iOS开发Swift篇—简单介绍 一.简介 Swift是苹果于2014年WWDC(苹果开发者大会)发布的全新编程语言 Swift在天朝译为“雨燕”,是它的LOGO 是一只燕子,跟Objective-C ...

  3. iOS开发Swift篇—(二)变量和常量

    iOS开发Swift篇—(二)变量和常量 一.语言的性能 (1)根据WWDC的展示 在进行复杂对象排序时Objective-C的性能是Python的2.8倍,Swift的性能是Python的3.9倍 ...

  4. iOS开发Swift篇—(三)字符串和数据类型

    iOS开发Swift篇—(三)字符串和数据类型 一.字符串 字符串是String类型的数据,用双引号""包住文字内容  let website = "http://www ...

  5. iOS开发Swift篇—(四)运算符

    iOS开发Swift篇—(四)运算符 一.运算符 1.Swift所支持的部分运算符有以下一些 赋值运算符:= 复合赋值运算符:+=.-= 算术运算符:+.-.*./ 求余运算符:% 自增.自减运算符: ...

  6. iOS开发Swift篇—(五)元组类型

    iOS开发Swift篇—(五)元组类型 一.元组类型介绍 1.什么是元组类型 元组类型由 N个 任意类型的数据组成(N >= 0),组成元组类型的数据可以称为“元素” 示例: let posit ...

  7. iOS开发Swift篇—(六)流程控制

    iOS开发Swift篇—(六)流程控制 一.swift中的流程控制 Swift支持的流程结构如下: 循环结构:for.for-in.while.do-while 选择结构:if.switch 注意:这 ...

  8. iOS开发Swift篇—(九)属性

    iOS开发Swift篇—(九)属性 一.类的定义 Swift与Objective-C定义类的区别 Objective-C:一般需要2个文件,1个.h声明文件和1个.m实现文件 Swift:只需要1个. ...

  9. iOS开发Swift篇(02) NSThread线程相关简单说明

    iOS开发Swift篇(02) NSThread线程相关简单说明 一 说明 1)关于多线程部分的理论知识和OC实现,在之前的博文中已经写明,所以这里不再说明. 2)该文仅仅简单讲解NSThread在s ...

随机推荐

  1. 30天C#基础巩固------集合,File(文件操作 ),Encoding处理字符集

    一:泛型    关于泛型我自己也不是很好的理解,但是具体的运用还是可以的,可以这样的理解,我们定义一个数组,但是不知道将来它是保存什么类型的值,很是矛盾,这个时候泛型就出现了,它可以解决这个场景,li ...

  2. jQuery漂亮图标的垂直导航菜单

    效果展示 http://hovertree.com/texiao/nav/3/ jQuery漂亮图标的垂直导航菜单 是一款当鼠标滑过菜单项时,会有一个背景遮罩层跟着鼠标移动,效果非常炫酷,图标还是矢量 ...

  3. mysql---ENCODE警告

    'ENCODE' is deprecated and will be removed in a future release. Please use AES_ENCRYPT instead ***** ...

  4. MySQL: Tree-Hierarchical query

             http://dba.stackexchange.com/questions/30021/mysql-tree-hierarchical-query     No problem. ...

  5. jquery easyui 弹出消息框 (转载) jQuery EasyUI API 中文文档 - 消息框(Messager) http://www.cnblogs.com/hantianwei/archive/2012/03/19/2407113.html

    <html> <head> <!-- 导入easyui插件的js和css样式; --> <link rel="stylesheet" ty ...

  6. mysql乱码解决

    在 /etc/my.cnf加上下面二句: skip-character-set-client-handshakecharacter-set-server = utf8

  7. selector 的用法,在选择和不选择情况下的颜色

    在res/drawable文件夹新增一个文件,此文件设置了图片的触发状态,你可以设置 state_pressed,state_checked,state_pressed,state_selected, ...

  8. javascript--Object

    概述 (1)定义 对象(object)是JavaScript的核心概念,也是最重要的数据类型.JavaScript的所有数据都可以被视为对象. 简单说,所谓对象,就是一种无序的数据集合,由若干个&qu ...

  9. HR人力资源战略流程制定

    HR人力资源战略 是指根据企业总体战略的要求,为适应企业生存和发展的需要,对企业人力资源进行开发,提高职工队伍的整体素质,从中发现和培养出一大批优秀人才,所进行的长远性的人力资源管理方面的专业谋划和方 ...

  10. 最短的数字判断代码 js

    转自  http://www.cnblogs.com/snandy/p/3590186.html 我们知道JavaScript提供了typeof运算符,因此最容易想到的是用typeof来判断是否是nu ...