熟练使用Alamofire请求数据

如果项目稍大一些,就尽量使用路由Route 组织形成url请求,避免很多次重复代码, 看起来也直观.

import UIKit
import Alamofire
struct KF {
enum Router: URLRequestConvertible{
    static let baseUrlString = "http://www.aaazb.com"

    case login([String: AnyObject])

    var  method : Alamofire.Method{
        switch self{
        case .login:
            return .POST
        }
    }

    var path: String{
        switch self{
        case .login:
            return "/login"
        }
    }

    var URLRequest: NSURLRequest{
        let URL = NSURL(string: Router.baseUrlString)
        let mutableURLRequest = NSMutableURLRequest(URL:URL!.URLByAppendingPathComponent(path))
            mutableURLRequest.HTTPMethod = method.rawValue
        mutableURLRequest.setValue("secondzilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/537.36 (KHTML, like Gecko) ipad/40.0.2125.122 Safari/537.36", forHTTPHeaderField: "User-Agent")
        mutableURLRequest.setValue("XMLHttpRequest", forHTTPHeaderField: "X-Request-With")
        mutableURLRequest.setValue("application/json", forHTTPHeaderField: "Accept")
        switch self{
        case .login(let parameters):
             return Alamofire.ParameterEncoding.URL.encode(mutableURLRequest, parameters: parameters).0
        }
    }
}
}

用到请求的时候:

Alamofire.request(KindFoo.Router.login(["user_name":"shan","user_pwd":"shan","uuid":"567-F8E9EBC8-6286-420A-B9D8-9FABC50B30CD"]))
            .responseJSON { (_, _, JSON, _) in
            println(JSON!.valueForKey("m"))
            //println(JSON)
        }

Alamofire是基于NSURLRequest封装的,所以Cookie会自动保存,就和浏览器请求是一个效果,而且网站Set_cookie多久,本地的Cookie 就多久,每次请求的时候都会自动带上cookie,直到过期.

如何查看cookie:

var url = NSURL(string: "http://www.aaazb.com")
var cookieJar = NSHTTPCookieStorage.sharedHTTPCookieStorage().cookiesForURL(url!)

如何清空Cookie:

 var url = NSURL(string: "http://www.aaazb.com")
 var cookieJar:NSArray = NSHTTPCookieStorage.sharedHTTPCookieStorage().cookiesForURL(url!)!
 //print(cookieJar.count)
 for i in cookieJar {
    NSHTTPCookieStorage.sharedHTTPCookieStorage().deleteCookie(i as NSHTTPCookie)
 }

设置Cookie:

时间: 2024-12-18 06:51:27

熟练使用Alamofire请求数据的相关文章

Swift 网络请求数据与解析

一: Swift 网络数据请求与处理最常用第三方 又有时间出来装天才了,还是在学swift,从中又发现一些问题,这两天上网找博客看问题弄的真的心都累.博客一篇写出来,好多就直接照抄,就没有实质性的把问题解决了,只是在发表的博客数量上 + 1 !!真心没意思.. 看看在Swift中是在怎样请求数据,解析数据加载图片这些的,也使我们最基本最常见的用法了,先说说这几个三方库: 第一个: Alamofire  (它的原作者就是AFNetworking的原作者,这个就不多说了,你要知道AFNetworki

node.js搭建代理服务器请求数据

1.引入node.js中的模块 1 var http = require("http"); 2 var url = require("url"); 3 var qs = require("querystring"); 2.创建服务器 //用node中的http创建服务器 并传入两个形参 http.createServer(function(req , res) { //设置请求头 允许所有域名访问 解决跨域 res.setHeader("

Java服务器对外提供接口以及Android端向服务器请求数据

讲解下java服务器是如何对移动终端提供接口的,以什么数据格式提供出去,移动端又是怎么请求服务器,接收以及解析返回数据的. 服务端:还是在原先S2SH框架的项目上(搭建SSH详细步骤及其相关说明),加入Servlet来做对终端提供接口的事情. Android端:用了一个网络访问框架okHttp,向服务器请求数据. 服务端: servlet接收移动端的get.post请求,进行相应逻辑处理后将要返回的数据封装成json格式写出去. 对数据库的操作传统的Servlet是用jdbc,但是操作过于繁琐,

AJAX跨域请求数据

由于浏览器的同源策略 ajax请求不可以接收到请求响应回来的数据 请求数据需要调用浏览器的内置构造函数 XMLHttpRequest() 进行 实例对象 var xhr = new XMLHttpRequest(); 注意点 在IE8之前支持的 ActiveXobject("Microsoft.XMLHTTP");  记住要进行兼容处理哦  在这里我就不写了 通过该对象进行获取 获取数据的四种状态  xhr.readyState 该属性保存着请求数据的几种状态 1.xhr.open(请

jQuery基础(Ajax,load(),getJSON(),getScript(),post(),ajax(),同步/异步请求数据)

1.使用load()方法异步请求数据 使用load()方法通过Ajax请求加载服务器中的数据,并把返回的数据放置到指定的元素中,它的调用格式为: load(url,[data],[callback]) 参数url为加载服务器地址,可选项data参数为请求时发送的数据,callback参数为数据请求成功后,执行的回调函数. 2.使用getJSON()方法异步加载JSON格式数据 使用getJSON()方法可以通过Ajax异步请求的方式,获取服务器中的数据,并对获取的数据进行解析,显示在页面中,它的

get和post方式请求数据,jsonp

get方式请求数据: p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 19.0px Consolas; color: #289c97 } p.p2 { margin: 0.0px 0.0px 0.0px 0.0px; font: 19.0px Consolas; color: #060606 } p.p3 { margin: 0.0px 0.0px 0.0px 0.0px; font: 19.0px Consolas; color: #4663cc }

Struts2请求数据自动封装和数据类型转换

方式1:jsp表单数据填充到action中的属性: 方式2:jsp表单数据填充到action的对象的属性: 方式1: 第一步:引包,省去 第二步:配置struts2的过滤器 1 <?xml version="1.0" encoding="UTF-8"?> 2 <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmln

向后端请求数据 以及像后端发送数据要求(删除数据和添加数据)

删除数据和添加数据只能后端操作 删除数据和添加数据都要用到的html(一)部分 <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Title</title> <link rel="stylesheet" href="../css/bootstrap.min.css"

I/O 请求数据包

MSDN原文:https://msdn.microsoft.com/zh-cn/library/windows/hardware/hh439638(v=vs.85).aspx 发送到设备驱动程序的大部分请求都打包在 I/O 请求数据包 (IRP) 中.操作系统组件或驱动程序将 IRP 发送到驱动程序,方法是调用 IoCallDriver,它有两个参数:指向 DEVICE_OBJECT 的指针和指向 IRP 的指针.DEVICE_OBJECT 具有指向关联 DRIVER_OBJECT 的指针.当组