首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Moya中的参数编码

Moya中的参数编码
EN

Stack Overflow用户
提问于 2020-03-19 09:27:06
回答 1查看 1.3K关注 0票数 0

我的项目在目标C中,我正在把它转换成Swift。目标-C项目使用AFNetworking进行联网。在新的快速项目中,我正在使用Moya

我已经创建了名为PhTrackerAPI的Moya目标,

代码语言:javascript
复制
public enum PhTrackerAPI {
    case login
    case checkNumberExist(phoneno: String, code: String)
    case todos
}

extension PhTrackerAPI: TargetType {
  public var baseURL: URL {
    return URL(string: "http://numberfinding.com/vaghani/call2loc/Api_c2l")!
  }

  public var path: String {
    switch self {
    case .login: return "/login"
    case .checkNumberExist: return "/check_number_exist"
    case .todos: return "/todos"
    }
  }

  public var method: Moya.Method {
    switch self {
    case .login, .checkNumberExist:
        return .post
    case .todos:
        return .get
    }
  }

  public var sampleData: Data {
    return Data()
  }

    var parameters: [String: Any]? {
        switch self {
        case .login:
            return [:]

        case .checkNumberExist(let phoneno, let code):
            return ["phone":phoneno,
                    "country_code":code]

        case .todos:
            return nil

        }
    }

  public var task: Task {
    switch self {
    case .login, .checkNumberExist:
        return .requestParameters(parameters: parameters!, encoding: JSONEncoding.default)
    default: return .requestPlain
    }
  }

  public var headers: [String: String]? {
    return ["Content-Type": "application/json"]
  }

  // 7
  public var validationType: ValidationType {
    return .successCodes
  }
}

当我从Postman请求API时,它会给出响应,但是如果我通过Moya调用它,它就会出现"Parameter“的错误。为什么会发生此错误?有人能帮我吗?

编辑:

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-03-21 05:46:18

我的API需要表单数据中的参数。因此,我有以下更新的任务,它现在工作良好。

代码语言:javascript
复制
 var task: Task {
    switch self {
    case .checkNumberExist:
         var multipartData = [MultipartFormData]()
               for (key, value) in parameters! {
                   let formData = MultipartFormData(provider: .data("\(value)".data(using: .utf8)!), name: key)
                   multipartData.append(formData)
               }
               return .uploadMultipart(multipartData)
    default: return .requestPlain
    }
 }
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60754230

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档