【问题标题】:Alamofire encoding invalidURLAlamofire 编码无效URL
【发布时间】: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 不会

【问题讨论】:

  • 尝试编码网址
  • 感谢您的反馈。你是怎么编码的?
  • 你能在哪里解决这个问题?

标签: swift get alamofire


【解决方案1】:

感谢您的回复,很遗憾没有成功。整个 URL 被破坏了,包括主机名。但它确实给了我一个起点来解决这个问题,谢谢。工作代码如下

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

【讨论】:

    【解决方案2】:

    请检查:

    let url = "https//:corp.local?$filter=owners/ref eq \'me@corp.local\'"
    let urlEncoded = url.addingPercentEncoding(withAllowedCharacters: .urlHostAllowed)
    print(urlEncoded!)
    

    【讨论】:

      猜你喜欢
      • 2018-05-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-02-13
      • 2012-02-08
      • 2021-04-18
      • 2016-02-23
      相关资源
      最近更新 更多