小编典典

如何添加Alamofire URL参数

swift

我有一个使用邮递员传递URL参数的工作方案。现在,当我尝试通过Swift中的Alamofire进行操作时,它不起作用。

您如何在Alamofire中创建此网址? http:// localhost:8080 /?test =
123

    _url = "http://localhost:8080/"
    let parameters: Parameters = [
        "test": "123"
        ]

    Alamofire.request(_url,
                      method: .post,
                      parameters: parameters,
                      encoding: URLEncoding.default,
                      headers: headers

阅读 325

收藏
2020-07-07

共1个答案

小编典典

问题是您正在使用URLEncoding.default。Alamofire会URLEncoding.default根据method您所使用的HTTP进行不同的解释。

对于GETHEADDELETE请求,URLEncoding.default将参数编码为查询字符串并将其添加到URL,但是对于任何其他方法(例如POST),参数将被编码为查询字符串并作为HTTP请求的正文发送。

为了在POST请求中使用查询字符串,您需要将encoding参数更改为URLEncoding(destination: .queryString)

您可以在此处查看有关Alamofire如何处理请求参数的更多详细信息。

您的代码应如下所示:

   _url = "http://localhost:8080/"
    let parameters: Parameters = [
        "test": "123"
        ]

    Alamofire.request(_url,
                      method: .post,
                      parameters: parameters,
                      encoding: URLEncoding(destination: .queryString),
                      headers: headers)
2020-07-07