亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > Swift > 正文

Swift網絡請求庫Alamofire使用詳解

2020-03-09 17:44:39
字體:
來源:轉載
供稿:網友

前言

Alamofire是一個使用Swift開發的網絡請求庫,其開發團隊是AFNetworking的原團隊。它語法簡潔,采用鏈式編程的思想,使用起來是相當的舒服。本質是基于NSURLSession進行封裝。接下開我們就進入實戰,開始學習Alamofire的使用。

GET請求

常用的get請求示例以及請求結果

 Alamofire.request("https://httpbin.org/get", method: .get, parameters: nil, encoding: URLEncoding.default, headers: nil).responseJSON { (response) in  if(response.error == nil){  LLog("請求成功")  LLog(response.result.value)  }else{  LLog("請求失敗/(String(describing: response.error))")  } }

Swift,網絡請求庫,Alamofire

Get請求、有參數、使用Basic Auth授權訪問(例如:jira)

var header:HTTPHeaders = [:] if let authorizationHeader = Request.authorizationHeader(user: "xxxx", password: "xxxxxx") {  header[authorizationHeader.key] = authorizationHeader.value } // 此處的 URLEncoding.default (URLEncoding.queryString )會將parameters 拼接到url后面 Alamofire.request("https://httpbin.org/get", method: HTTPMethod.get, parameters: ["key":"value"], encoding: URLEncoding.default, headers: header).responseJSON { (response) in  if(response.error == nil){  LLog("請求成功")  LLog(response.result.value)  }else{  LLog("請求失敗/(String(describing: response.error))")  } }

Swift,網絡請求庫,Alamofire

POST請求 常用的post請求

Alamofire.request("https://httpbin.org/post", method: .post, parameters: ["key1":"value1","key2":"value2"], encoding: URLEncoding.default, headers: nil).responseJSON { (response) in   if(response.error == nil){    LLog("請求成功")    LLog(response.result.value)   }else{    LLog("請求失敗/(String(describing: response.error))")   }  }

Swift,網絡請求庫,Alamofire

post請求,提交json格式的數據

// JSONEncoding.default === JSONEncoding.prettyPrinted Alamofire.request("https://httpbin.org/post", method: .post, parameters: ["key1":"value1","key2":"value2"], encoding: JSONEncoding.default, headers: nil).responseJSON { (response) in   if(response.error == nil){    LLog("請求成功")    LLog(response.result.value)   }else{    LLog("請求失敗/(String(describing: response.error))")   }  }

Swift,網絡請求庫,Alamofire

PUT、Delete 請求 參照POST(使用區別不大)

UPLOAD(上傳文件)

上傳文件示例

 let data:Data = UIImageJPEGRepresentation(#imageLiteral(resourceName: "beauty.jpeg"), 0.2)!  let url = Bundle.main.url(forResource: "beauty", withExtension: "jpeg");  // 多文件上傳  Alamofire.upload(multipartFormData: { (formdata) in   formdata.append(data, withName: "file", fileName: "beauty.jpeg", mimeType: "image/jpeg")    formdata.append(url!, withName: "file2")  }, to: UPLOAD_URL) { (encodingResult) in   switch encodingResult{   case .success(let uploadFile, _, _):    //上傳進度回調    uploadFile.uploadProgress(closure: { (progress) in     debugPrint("上傳進度/(progress)")    })    //上傳結果回調    uploadFile.responseString(completionHandler: { (response) in     LLog(response.result.value)    })    break   case .failure( let error):    LLog(error);    break   }  }

Swift,網絡請求庫,Alamofire

備注:

想必大家也注意到上面的上傳圖片的代碼,在append data的時候多了一個 filename的參數,在測試的時候,我發現這個參數是必須的,如果你傳入的是data數據,但是如果你使用的是fileurl則可以不用這個參數,在alamofire中 會自己獲取文件的名。

Swift,網絡請求庫,Alamofire
Swift,網絡請求庫,Alamofire

如果我們在append data的時候,不傳入文件名,在上面的代碼中 headers中則不會有 filename這個參數,此時使用charles抓包是會發現如下。

Swift,網絡請求庫,Alamofire

上傳文件并攜帶參數

var param: [String:String] = [:];  param["postion"] = "portrait"  let url = Bundle.main.url(forResource: "beauty", withExtension: "jpeg");  // 2、多文件上傳  Alamofire.upload(multipartFormData: { (formdata) in   formdata.append(url!, withName: "file2")   //拼接參數   for (key, value) in param {    formdata.append(value.data(using: String.Encoding.utf8)!, withName: key)   }  }, to: UPLOAD_URL) { (encodingResult) in   switch encodingResult{   case .success(let uploadFile, _, _):    //上傳進度回調    uploadFile.uploadProgress(closure: { (progress) in     debugPrint("上傳進度/(progress)")    })    //上傳結果回調    uploadFile.responseJSON(completionHandler: { (response) in     LLog(response.result.value)    })    break   case .failure( let error):    LLog(error);    break   }  }

Swift,網絡請求庫,Alamofire

備注:在我們的實際開發中,后臺有時候并沒有配置專門的文件服務器,這個時候我們往往就需要在上傳文件的時候,配置必要的參數,來表明我們上傳文件資源的目的。

最后

Alamofire真的是一個很好用的網絡請求庫,同學們,趕緊開始使用吧!


注:相關教程知識閱讀請移步到swift教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
成人网在线视频| 日本在线精品视频| 久久伊人精品一区二区三区| 欧美在线观看一区二区三区| 亚洲午夜未满十八勿入免费观看全集| 中文字幕亚洲综合| 亚洲成av人乱码色午夜| 欧美最猛性xxxxx亚洲精品| 日韩av大片免费看| 亚洲精品少妇网址| …久久精品99久久香蕉国产| 国产精品偷伦视频免费观看国产| 国产欧美精品一区二区| 亚洲最大的网站| 亚洲黄色www| 中文国产成人精品| 久久久久久国产精品三级玉女聊斋| 成人福利在线观看| 欧美成年人在线观看| 亚洲在线视频福利| 精品国产欧美一区二区五十路| 国产精品视频自在线| 久久久久久久久久久久久久久久久久av| 欧美大人香蕉在线| 欧洲一区二区视频| 日韩欧美高清视频| 中文欧美日本在线资源| 97人人模人人爽人人喊中文字| 欧美俄罗斯乱妇| 91精品国产综合久久香蕉| 久国内精品在线| 日韩欧美在线视频日韩欧美在线视频| 亚洲天堂免费观看| 久久亚洲国产成人| 日韩av电影在线网| 国产福利精品视频| www.日韩av.com| 欧美在线影院在线视频| 久久久久久久久久久久av| 久久久精品视频在线观看| 欧美色视频日本高清在线观看| 欧美日本在线视频中文字字幕| 久久精品国产一区二区三区| 国产精品99久久久久久www| 欧美精品电影免费在线观看| 亚洲一区中文字幕| 久久国产精彩视频| 亚洲精品www久久久| 欧美激情啊啊啊| 欧美日韩一区二区免费在线观看| 国产欧美在线播放| 国产精品欧美亚洲777777| 美女精品视频一区| 欧美大尺度电影在线观看| 中文字幕亚洲一区| 亚洲精品天天看| 欧美大尺度在线观看| 川上优av一区二区线观看| 欧美男插女视频| 亚洲第一色在线| 国产精品日日摸夜夜添夜夜av| 97激碰免费视频| 久久69精品久久久久久国产越南| 国产精品69久久久久| 欧美丝袜美女中出在线| 日韩激情视频在线播放| 91精品国产91久久久久福利| 欧美激情第99页| 日韩中文字幕在线视频| 国模精品系列视频| 92国产精品视频| 欧美日韩精品国产| 亚洲一区亚洲二区亚洲三区| 91精品国产综合久久久久久久久| 91视频免费在线| 午夜精品视频在线| 在线电影av不卡网址| 国产精品久久久久7777婷婷| 久久久免费av| 欧美激情一二区| 欧美大人香蕉在线| 国产a级全部精品| 青青草国产精品一区二区| www高清在线视频日韩欧美| 久久亚洲精品一区| 欧美黑人巨大xxx极品| 在线电影欧美日韩一区二区私密| 日韩高清欧美高清| 91九色国产社区在线观看| 亚洲欧洲免费视频| 最近2019中文字幕大全第二页| 国产精品88a∨| 国产福利成人在线| 久久视频在线视频| 国产一区二区精品丝袜| 日韩中文娱乐网| 欧洲亚洲免费视频| 久久激情五月丁香伊人| 精品国产91乱高清在线观看| 欧美激情在线观看视频| 亚洲美女av在线播放| 久久久久久久亚洲精品| 欧美大胆a视频| 国产精品欧美一区二区| 国产精品丝袜视频| 午夜精品久久久久久久白皮肤| 日韩中文理论片| 久久久久免费精品国产| 北条麻妃99精品青青久久| 亚洲精品国产精品国自产在线| 亚洲精品影视在线观看| 国产丝袜一区二区三区免费视频| 日韩69视频在线观看| 欧美黑人国产人伦爽爽爽| 日韩亚洲精品视频| 日韩av中文字幕在线免费观看| 久久99视频免费| 国产精品久久婷婷六月丁香| 欧美精品做受xxx性少妇| 日韩精品中文字幕在线观看| 北条麻妃99精品青青久久| 国产精品三级久久久久久电影| 久久精品久久久久电影| 欧美视频在线看| 日韩黄色av网站| 在线电影中文日韩| 国产不卡一区二区在线播放| 亚洲国产精品久久| 久久视频免费观看| 国产区亚洲区欧美区| 国产精品三级在线| 日韩在线视频免费观看高清中文| 欧美成人午夜视频| 日韩在线免费观看视频| 国产z一区二区三区| 精品久久久久久亚洲国产300| 亚洲国产精品网站| 91精品国产自产在线| 国产成人精品久久亚洲高清不卡| 亚洲精品国产综合久久| 亚洲欧美国产一区二区三区| 久久久电影免费观看完整版| 青青草国产精品一区二区| 国内精品久久久久久中文字幕| 久久精品一本久久99精品| 欧美性理论片在线观看片免费| 久久久av一区| 大荫蒂欧美视频另类xxxx| 高清欧美一区二区三区| 国产精品aaaa| 久久久久久久爱| 日本一欧美一欧美一亚洲视频| 亚洲性夜色噜噜噜7777| 国产日韩在线一区| 中文字幕亚洲欧美日韩2019| 国产色综合天天综合网| 久久久www成人免费精品张筱雨| 国语自产精品视频在线看一大j8| 亚洲福利影片在线| 国产精品久久久久久五月尺| 亚洲精品成人久久久| 久久久噜噜噜久久中文字免| 清纯唯美亚洲综合| 亚洲免费一级电影|