亚游,  结婚需要做足准备,离婚也一样,暂且别打草惊蛇,如果他们得寸进尺继续不注重你的感受,那你可以咨询律师,然后搜集好证据,一举起诉离婚。

  向天怒吼的炮声让宁静的西南高原某综合训练场变得热闹起来。陈志勇带领的师团机关、保障分队及8个战炮连,千人百车机动两天两夜,刚到集结地域,车炮都还未拉到战位,天上突然“敌机”轰鸣……微信赚钱的三大方法  早在2006年5月日美就“制定共同作战计划”、“共享作战情报”、“扩大共同训练”及“共同利用军事基地”等举措达成协议。这意味着美日所谓”共同作战”早在七年前已形成。这次的“共同作战计划”具有很强的针对性,即针对中日钓鱼岛之争。日美军事力量一体化所达到的成果就是两国共同作战的底气。

发布于 2017-09-09 21:26:21 | 178 次阅读 | 评论: 1 | 来源: 网友投递

这里有新鲜出炉的Swift教程,程序狗速度看过来!

Swift编程语言

SWIFT,苹果于2014年WWDC(苹果开发者大会)发布的新开发语言,可与Objective-C*共同运行于Mac OS和iOS平台,用于搭建基于苹果平台的应用程序。


这篇文章主要为大家详细介绍了Swift网络请求库Alamofire的使用方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

前言

Alamofire是一个使用Swift开发的网络请求库,其开发团队是AFNetworking的原团队。它语法简洁,采用链式编程的思想,使用起来是相当的舒服。本质是基于NSURLSession进行封装。接下开我们就进入实战,开始学习Alamofire的使用。

GET请求

常用的get请求示例以及请求结果


 Alamofire.request("/httpbin0b0aorg/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))")
  }

 }

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("/httpbin0b0aorg/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))")
  }

 }

POST请求 常用的post请求


Alamofire.request("/httpbin0b0aorg/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))")
   }

  }

post请求,提交json格式的数据


/JSONEncoding0b0adefault === JSONEncoding.prettyPrinted
 Alamofire.request("/httpbin0b0aorg/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))")
   }

  }

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
   }

  }

备注:

想必大家也注意到上面的上传图片的代码,在append data的时候多了一个 filename的参数,在测试的时候,我发现这个参数是必须的,如果你传入的是data数据,但是如果你使用的是fileurl则可以不用这个参数,在alamofire中 会自己获取文件的名。


如果我们在append data的时候,不传入文件名,在上面的代码中 headers中则不会有 filename这个参数,此时使用charles抓包是会发现如下。

上传文件并携带参数


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
   }



  }

 

备注:在我们的实际开发中,后台有时候并没有配置专门的文件服务器,这个时候我们往往就需要在上传文件的时候,配置必要的参数,来表明我们上传文件资源的目的。

最后

Alamofire真的是一个很好用的网络请求库,同学们,赶紧开始使用吧!



相关阅读 :
亚游Swift网络请求库Alamofire使用详解
亚游Swift 柯里化(Currying)使用详解
Swift 初学手册:可选类型 (Optionals) 使用详解
Swift中的闭包(Closure)使用详解
swift 可选型的使用详解
Swift 值类型和引用类型详解
Swift教程之类的析构详解
Swift教程之枚举类型详解
Swift教程之字符串和字符详解
Swift教程之基础数据类型详解
Swift编程之枚举类型详解
Swift中闭包实战案例详解
最新网友评论  共有(1)条评论 发布评论 返回顶部
PHPERZ网友 发布于2017-12-29 15:27:04
LLog 這樣打印會過 我服了你
支持(0)  亚游反对(0)  回复

Copyright © 2007-2017 亚游 All Rights Reserved   冀ICP备14009818号  亚游  广告服务
尽情吃还不胖!分享6个聚餐也减肥的小tips 东部第一将发展联盟MVP转正!他还曾效力过CBA 贵州遵义市委秘书长王晓旭涉违纪被审查(简历) 男子跳楼被拽住 自解腰带坠楼身亡 奇牛国际:美国制裁伊朗恐将拖累欧洲企业发展 法国交通巨头波洛雷 为何急于牵手阿里巴巴 柬埔寨这群中国“文物医生” 被称赞留住了古迹魂 俄罗斯大选在即 普京称若能改变历史想阻止苏联解体 中国田径这一年:马拉松大放异彩 群众能跑全运会 前TOP5赞费德勒是战术大师 不放弃精神助其再登顶 电视辩论发言总被打断 俄女总统候选人委屈落泪 龚翔宇张常宁合砍44分 江苏3-1辽宁季军战首胜
南京景点被村民圈地建坟 被发现时已建好一半(图) 美媒:空袭叙利亚太烧钱 数十枚导弹就花掉7.5亿元 联合国谴责巴以冲突 以媒:把联合国赶出耶路撒冷 女客户投诉快递员后被其入室打伤 索赔77万余元 国资投运公司改革试点如何监管不越位?财政部回应 女护士举手机放动画片50分钟 安抚手术中儿童(图) 曝尤文今夏挖角阿森纳大将 盼他拒续约免费加盟 美国民调:半数美国人反对提高钢铝产品进口关税 人大代表谈“天价彩礼”:如同卖女子 已涉嫌违法 赵睿21分易建联14+12 广东大胜新疆大比分2-0 津媒:索萨轮换阵型引巨大争议 固执己见让人遗憾 韩媒:韩空军将第三次在关岛参加救援重建多国联演
Netflix内容主管:新增营收85%来自原创内容 巴基斯坦官员:美国利用IMF离间中巴关系 台媒:大陆与南太拉美互动频繁 台“友邦”或告急 中超-神剧!神仙球!三球领先险绝平 泰达3-2一方 美国航母卡尔-文森号抵达越南 将停靠岘港 中国共产党第十九次全国代表大会报告摘编发行 房地产调控再定调:抑制投机与长效机制并进 北京大部今有小雨或雨夹雪 最高气温仅4℃ 少狼王24+18率队保第8 血布三双雄鹿升至第六 文科生可以报哪些专业 赚钱最快的八个方法 冬天摆地摊卖什么最好 微信赚钱平台 亚游