zoukankan      html  css  js  c++  java
  • NSURLSession -- 实际开发中运用

    NSURLSession实际请求

    iOS9使用http请求方法:

    1. 在工程info.plist文件内添加NSAppTransportSecurity键,类型为dictionary
    2. 在NSAppTransportSecurity中添加NSAllowsArbitraryLoads键,值为YES

    GET请求

            let key = "a27383fa93bd3cc57ff4a180036d56ac"
            let urlString = "http://v.juhe.cn/xianxing/citys"
            let url = NSURL(string: urlString + "?key=" + key)
            
            // 创建请求对象
            let request = NSURLRequest(URL: url!)
            
            // 获取会话对象
            let session = NSURLSession.sharedSession()
            
            // 创建请求任务
            let task = session.dataTaskWithRequest(request) { (data, response, error) in
                if let jsonData = data {
                    do {
                        let dic = try NSJSONSerialization.JSONObjectWithData(jsonData, options: NSJSONReadingOptions.MutableContainers) as? [String : AnyObject]
                        print(dic)
                    } catch {
                        
                    }
                }
            }
            
            // 执行任务
            task.resume()
    

    POST请求

            let urlString = "http://v.juhe.cn/carzone/series/query"
            let url = NSURL(string: urlString)
            
            // 创建请求对象
            let request = NSMutableURLRequest(URL: url!)
            // 设置请求模式
            request.HTTPMethod = "POST"
            // 设置请求体
            request.HTTPBody = "action=getCarAllBrand&key=afdfb2885044bf2e14b24c293012bbea".dataUsingEncoding(NSUTF8StringEncoding)
            
            
            // 获取会话对象
            let session = NSURLSession.sharedSession()
            
            // 创建请求任务
            let task = session.dataTaskWithRequest(request) { (data, response, error) in
                if let jsonData = data {
                    do {
                        let dic = try NSJSONSerialization.JSONObjectWithData(jsonData, options: NSJSONReadingOptions.MutableContainers) as? [String : AnyObject]
                        print(dic)
                    } catch {
                        
                    }
                }
            }
            
            // 执行任务
            task.resume()
    
  • 相关阅读:
    双循环建表____1911年 为 辛亥年
    技巧方法
    sscanf
    02-02环境准备-pyenv与virtualenv以及venv方案对比
    02-01环境准备-virtualenv和venv
    02-01环境准备-pyenv
    【转】解决weblogic启动慢和创建域慢的方法
    chrome新版打开新标签页自动打开谷歌主页
    centos6分辨率设置
    12-openldap使用AD密码
  • 原文地址:https://www.cnblogs.com/Alex-sk/p/5574159.html
Copyright © 2011-2022 走看看