如何在iOS中使用莫亚网络请求

  介绍

如何在iOS中使用莫亚网络请求?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

<强>莫亚简介

火山泥是你的应用程序中缺失的网络层。不用再去想在哪儿(或者如何)安放网络请求,莫亚替你管理。

莫亚有几个比较好的特性:

<李>

编译时检查正确的API端点访问。

<李>

使你定义不同端点枚举值对应相应的用途更加明晰。

<李>

提高测试地位从而使单元测试更加容易。

迅速我们用<强> Alamofire 来做网络库。而莫亚在Alamofire的基础上又封装了一层,如下流程图说明<强>莫亚的简单工作流程图:

<人物>

如何在iOS中使用莫亚网络请求

莫亚的官方下载地址点我强大的火山泥,有具体的使用方法在演示里面有说明。

本文主要介绍一下<强>莫亚强的用法

<李>

设置请求头部信息设

<李>

置超时时间

<李>

自定义插件

<李>

自签名证书

注意:以下所出现的<强> NetAPIManager 跟官网上演示的* * GitHub * *是一样类型的文件,都是这个enum实现一个协议TargetType,点进去可以看到TargetType定义了我们发送一个网络请求所需要的东西,什么baseURL,参数,方法等一些计算性属性,我们要做的就是去实现这些东西,当然有带默认值的我们可以不去实现,但是设置头部信息跟超时时间就要修改这些系统默认设置了。

为了看得更加清楚,贴上<强> NetAPIManager 强文件的内容

////NetAPIManager.swift//NN110////,Created  by 陈亦海,提醒2017/5/12。//,Copyright 及副本;,2017年,陈亦海只All  rights 保留。//import 基础   import 火山泥         enum  NetAPIManager  {   case 显示   ,case 上传(bodyData:数据)   case 下载   ,case 请求(isTouch: Bool,,身体:,Dictionary<字符串,Any> ?,, isShow:, Bool)   }         extension  NetAPIManager:, TargetType  {   ,var  baseURL: URL {//服务器地址   ,,   switch 才能;self  {   case 才能;.request (, _, _, _):   ,,return  URL(弦:“https://www.pmphmall.com") !   默认值:才能   ,,return  URL(弦:“https://httpbin.org") !   ,,}   ,,   ,,   ,}   ,   ,var 路径:String {//具体某个方法的路径   switch 才能;self  {   case 才能;,告诉:   ,,return “;“   case 才能.upload (_):   ,,return “;“   case 才能;.request (_, _, _):   ,,return “/app/json.do"   case 才能;.download:   ,,return “;“   ,,}   ,}   ,   ,var 方法:Moya.Method {//请求的方法,得到或者发布之类的   switch 才能;self  {   case 才能;,告诉:   ,,return  . get   case 才能;.request (_, _, _):   ,,return  . post   默认值:才能   ,,return  . post   ,,}   ,}   ,   ,var 参数:[字符串:任何]?,{//请求的get 文章给服务器的参数   switch 才能;self  {   case 才能;,告诉:   ,,return 零   case 才能;.request (_, _, _):   ,,return  [“msg":“H4sIAAAAAAAAA11SSZJFIQi7EqPAEgTvf6TP62W7sMoSQhKSWDrs6ZUKVWogLwYV7RjHFBZJlNlzloN6LVqID4a + puxqRdUKVNLwE1TRcZIC/fjF2rPotuXmb84r1gMXbiASZIZbhQdKEewJlz41znDkujCHuQU3dU7G4/PmVRnwArMLXukBv0J23XVahNO3VX35wlgce6TLUzzgPQJFuHngAczl6VhaNXpmRLxJBlMml6gdLWiXxTdO7I + iEyC7XuTirCQXOk4dotgArgkH/InxVjfNTnE uY46 + + hyAiLFuFL4cv1Z8WH5DgB2GnvFXMh6gm53Tr13vqqrEYtcdXfkNsMwKB + 9 saq77grnjmqufwohfxa/DELlMB0KKFtHOc ronj1ml + Z7qas82L3VWiCVQ + HEitjTVzoFw8RisFN/jJxBY4awvq427McXqnyrfCsl7oeEU6wYgW9yJtj1lOkx0ELL5Fw4z071NaVzRA9ebxWXkFyothgbB445cpRmTC +//F73r1kOyQ3lTpec12XNDR00nnq5/YmJItW3 + w1z27lSOLqgVctrxG4xdL9WVPdkH1tkiZ/pUKBGhADAAA=?   默认值:才能   ,,return 零   ,,   ,,}   ,}   ,   ,var  sampleData: Data {,//编码转义   return 才能“{}”. data(使用:String.Encoding.utf8) !   ,}   ,   ,var 任务:Task {,//一个请求任务事件   ,,   switch 才能;self  {      ,,   case 才能;let  .upload(数据):   return 才能.upload (.multipart ([MultipartFormData(供应商:,. data(数据),名字:,“file",,文件名:,“gif.gif",, mimeType:,“图像/gif"))))   ,,   默认值:才能   ,,return  .request      ,,}      ,,}   ,   ,var  parameterEncoding: ParameterEncoding {//编码的格式   switch 才能;self  {   case 才能;.request (_, _, _):   ,,return  URLEncoding.default   默认值:才能   ,,return  URLEncoding.default   ,,}   ,,   ,}   ,//以下两个参数是我自己写,用来控制网络加载的时候是否允许操作,跟是否要显示加载提示,这两个参数在自定义插件的时候会用的到   ,var 接触:Bool {,//是否可以操作   ,,   switch 才能;self  {   case 才能;.request (let  isTouch, _, _):   ,,return  isTouch   默认值:才能   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null

如何在iOS中使用莫亚网络请求