swift – Alamofire编码invalidURL

大家下午好,新手在这里试图学习 Swift / Alamofire.我已经挣扎了将近两天,我已准备好继续前进了.

我的网址似乎已更正,但我在发出请求时收到错误消息.在查看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)

相关文章

软件简介:蓝湖辅助工具,减少移动端开发中控件属性的复制和粘...
现实生活中,我们听到的声音都是时间连续的,我们称为这种信...
前言最近在B站上看到一个漂亮的仙女姐姐跳舞视频,循环看了亿...
【Android App】实战项目之仿抖音的短视频分享App(附源码和...
前言这一篇博客应该是我花时间最多的一次了,从2022年1月底至...
因为我既对接过session、cookie,也对接过JWT,今年因为工作...