【问题标题】:Trying to set URL and HTTP.body parameters when using Alamofire使用 Alamofire 时尝试设置 URL 和 HTTP.body 参数
【发布时间】:2025-12-24 13:40:12
【问题描述】:

我在向 REST API 发帖时尝试在此处设置 URL 参数,但由于某种原因,发出请求时它们没有出现在 URL 上。

我看到了其他问题的发布,但他们只设置了正文参数,我需要在 URL 上提供应用程序密钥和会话 ID

    // return URLRequestConvertible and NSData
    var urlParams:[String: String] = Dictionary()
    urlParams.updateValue(ACS_API_KEY, forKey: "key")
    urlParams.updateValue(SESSION_ID, forKey: "_session_id")

    // cannot figure out how to set params on URL
    return (Alamofire.ParameterEncoding.URL.encode(mutableURLRequest, parameters: urlParams).0, uploadData)

【问题讨论】:

    标签: ios swift alamofire


    【解决方案1】:

    我在这里最好的猜测是您没有在mutableURLRequest 中使用GETHEADDELETE HTTP 方法。如果是其他任何一个,那么 Alamofire 会自动将参数编码到请求的 HTTP 正文中。更多信息请参考URL案例下的encode方法。

    作为一种解决方法,您可以将mutableURLRequest 设置为GET,运行encode 方法,然后将URL 应用于新请求。我意识到这是一种奇怪的解决方法,但这是必要的,因为您的用例不是 ParameterEncoding 枚举设计的常见用例。

    希望这有助于阐明一些问题。

    【讨论】:

    • 嗨@aaron,如果这个答案足够,你可以投票并标记吗?