【发布时间】:2020-03-19 09:27:06
【问题描述】:
我的项目在 Objective-C 中,我正在将其转换为 Swift。 Objective-C 项目使用AFNetworking 进行联网。在新的 swift 项目中,我使用Moya。
我创建了名为 PhTrackerAPI 的 Moya 目标,
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 调用它,它会给出“找不到参数”的错误。为什么会出现这个错误?谁能帮帮我?
编辑:
【问题讨论】:
-
可能你有
public enum,并将所有计算属性声明为public var,但parameters没有明确声明为public? -
这不是问题。如果我打印从这里成功传递的参数。但它没有进入后端。 @IliyaKisliy
-
您能附上您的邮递员请求吗? @komal-goyani
标签: ios swift afnetworking form-data moya