【发布时间】:2017-09-26 21:06:50
【问题描述】:
大家下午好,这里的新手正在尝试学习 Swift / Alamofire。我已经为此苦苦挣扎了将近两天,准备继续前进。
我的 URL 似乎已更正,但在发出请求时出现错误。在查看 Xcode 调试日志时,看起来我的单引号在发送请求时被转义了。
let owner : String = "me@corp.local"
func getDeploymentsByOwner(token: String, owner: String, success: @escaping (JSON) -> Void, failure: @escaping (Error) -> Void) {
let headers = [
"Authorization": "Bearer \(token)",
]
print(owner)
let url = "https://corp.local?$filter=owners/ref eq '\(owner)'"
// created URL is https://corp.local?$filter=owners/ref eq 'me@corp.local'
Alamofire.request(url, method: .get, encoding: URLEncoding.queryString, headers: headers).responseJSON { (responseObject) -> Void in
if responseObject.result.isSuccess {
let resJSON = JSON(responseObject.result.value!)
success(resJSON)
}
if responseObject.result.isFailure {
let error = responseObject.result.error
print(error)
failure(error!)
}
}
我的错误信息如下所示 // Xocde 调试错误
Optional(Alamofire.AFError.invalidURL("https//:corp.local?$filter=owners/ref eq \'me@corp.local\'"))
invalidURL(https://corp.local?$filter=owners/ref eq \'me@corp.local\'")
我可以不使用 $filter 获取所有项目,因此只要省略过滤器,请求就可以工作。
// Postman 使用生成的 URL,但带有反斜杠 () 的 URL 不会
【问题讨论】:
-
尝试编码网址
-
感谢您的反馈。你是怎么编码的?
-
你能在哪里解决这个问题?