gpt4 book ai didi

swift - Alamofire 编码 invalidURL

转载 作者:搜寻专家 更新时间:2023-10-31 21:54:15 26 4
gpt4 key购买 nike

大家下午好,这里的新手正在尝试学习 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 都被破坏了,包括主机名。但它确实给了我一个解决问题的起点,谢谢。工作代码如下

    let url = "https://corp.local?$filter=owners/ref eq '\(owner)'"
let encodedUrl = url.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed)

关于swift - Alamofire 编码 invalidURL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46435842/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com