最后在你需要用到AlamofireObjectMapper的类中加上:

func mapping(map: Map) {

importAlamofireObjectMapper

print(“JSON:\(JSON)”)

创建 Mappable 对象

{

“args”:{},

“headers”:{    

“Accept”:”text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8″, 
  

“Accept-Encoding”:”gzip, deflate, br”,

 “Accept-Language”:”zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3″, 

 “Cache-Control”:”max-age=0″,    

 “Host”:”httpbin.org”,    

 “User-Agent”:”Mozilla/5.0 (Macintosh; Intel Mac OS X 10.11; rv:46.0)
Gecko/20100101 Firefox/46.0″

},

“origin”:”202.115.52.218″,

“url”:”https://httpbin.org/get

}

       
 根据该JSON的数据格式创建以下两个Mapper类分别对应整个字典和key值为“header”的字典。将JSON中的数据与对象中的数据一一建立转化关系。
 

import ObjectMapper

class ResponseHeader: Mappable {

var accept : String?

var acceptEncoding : String?

var acceptLanguage : String?

var cacheControl : String?

var host : String?

var userAgent : String?

required init?(_ map: Map) {

}

//映射heades字典中的所有键值

func mapping(map: Map) {

accept <- map[“Accept”]

acceptEncoding <- map[“Accept-Encoding”]

acceptLanguage <- map[“Accept-Language”]

cacheControl <- map[“Cache-Control”]

host <- map[“Host”]

userAgent <- map[“User-Agent”]

}

}

import Foundation

import ObjectMapper

class MyResponse: Mappable {

var args : NSDictionary?

var headers : ResponseHeader?

var origin : String?

var url : String?

required init?(_ map: Map) {

}

//映射字典中的所有键值

func mapping(map: Map) {

args <- map[“args”]

headers <- map[“headers”]

origin <- map[“origin”]

url <- map[“url”]

}

}

    required init?(map: Map){


    touxiang            <- map[“touxiang”]

source’https://github.com/CocoaPods/Specs.git

platform:ios,’9.0′

use_frameworks!

target’Web’do

pod’AlamofireObjectMapper’,’~> 3.0′

end

xcodeproj’Desktop/Web/Web.xcodeproj’

先引用 import  Alamofire

target后面为工程名,最后一行为工程路径(这里的Web是我的工程名)

print(error?.code ?? “failure”)

        通常网络请求返回的是JSON数据,使用ObjectMapper可以让JSON数据直接转化为对象,而使用Alamofire进行网络请求时,使用AlamofireObjectMapper可以直接返回对象,更加简洁。

        let model = Mapper.init().map(JSON: att as! [String : Any])

Target->工程名->Build Settings->Search Paths->User Header
Search Paths处添加AlamofireObjectMapper所在的目录:

NetWorkingRequestCenter.PostSendData(dic: dic, url: “xxxxxxx”,
successed: { (response) in                                   
print(response )                       

用Alamofire获取对象

webRequst() { let url = “https://httpbin.org/get
//注意返回的类型为Alamofire.request(.GET, url).responseObject {
(response: Response) in

let myResponse = response.result.value

print(myResponse?.url)

if let header = myResponse?.headers{

print(header.userAgent)

}

}

}

打印内容:

Optional(“https://httpbin.org/get“)

Optional(“Web/com.applelab.Web (1; OS Version 9.3 (Build 13E230))”)

Alamofire的使用:[快速学会Swift第三方库]
Alamofire篇

ObjectMapper在非Alamofire请求下的使用:GitHub-ObjectMapper主页

             let JSON = returnResult.result.value as? NSDictionary

额外操作:

       backArray.append(model!)

Podfile文件内容为如下:

         let att = arr[i]                               

}

   }

用刚才上面封装的post请求请求数据

Alamofire.request(“https://api.500px.com/v1/photos“, method:
.get).responseJSON {  response in 

}) { (error) in

    case .failure(_):

一般我们需要在项目中封装一下 Alamofire 在使用 

    let arr = response?[“doinglist”] as! NSArray                     
 

switch returnResult.result {

   }

    docid              <- map[“docid”]

       break

           // 解析json

}

}

项目应该有一个类进行网络请求 ,下面就是一个post请求的封装

     var backArray = [MainDataModel]()                      

class func PostSendData(dic:[String: String], url:String,
successed:@escaping (_ responseObject: AnyObject?) -> (), failed:
@escaping (_ error: NSError?) -> ())  {

            successed(JSON)

          break

         failed(returnResult.result.error! as NSError)

guardletJSON= response.result.valueelse{return}

    var touxiang: String?

例:class MainDataModel:NSObject ,Mappable{

    var lastcontent: String?

Alamofire.request(url, method: .post, parameters: dic).responseJSON {
(returnResult) in

引用 import ObjectMapper

图片 1

   }

    lastcontent        <- map[“lastcontent”]

  }

ObjectMapper的使用

      case .success:

需要网络请求时使用下面这段

    var time: String?

建一个类 继承与NSObject  遵守Mappable  

       print(model?.docid ?? “aa”)

    time                <- map[“time”]

     for i in 0…arr.count-1{                               

    var docid: String?

}

Alamofire :https://github.com/Alamofire/Alamofire

相关文章