【发布时间】:2018-04-11 12:27:19
【问题描述】:
如何使用 Moya 使用 get-API(具有以下请求结构)?
http://some.environment.com/some/api/some/contacts/81193?types=["details", "permissions"]
这是我尝试过的。
enum MyApiTarget: TargetType {
case getInfo(contactID: Int, types: [String])
public var baseURL: URL {
switch self {
case .getInfo:
return URL(string: "http://some.environment.com/some/api")!
}
}
public var path: String {
switch self {
case .getInfo(contactID: let contactId, types: _):
return "/some/contacts/\(contactId)"
}
}
public var method: Moya.Method {
switch self {
case .getInfo:
return .get
}
}
public var sampleData: Data {
return Data()
}
public var task: Task {
switch self {
case .getInfo(contactID: _, types: let types):
return .requestParameters(
parameters: ["types" : types],
encoding: URLEncoding.queryString
)
}
}
public var headers: [String: String]? {
return nil
}
}
以上代码生成以下 URL。
http://some.environment.com/some/api/some/contacts/81193?types%5B%5D=details&types%5B%5D=permissions
我已经尝试了以下编码
URLEncoding.queryStringURLEncoding.defaultURLEncoding.httpBodyJSONEncoding.defaultJSONEncoding.prettyPrinted
没有任何编码帮助我产生预期的结果。
【问题讨论】:
-
URL 不能包含括号它是有效的 %5B 是 '[' 而 %5D 是 ']'
标签: ios swift xcode alamofire moya