当前位置: 首页 > 面试题库 >

如何添加Alamofire URL参数

高恺
2023-03-14
问题内容

我有一个使用邮递员传递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

问题答案:

问题是您正在使用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)


 类似资料:
  • 如何向Log4J2的JsonLayout添加自定义参数? 还有一种方法可以将模式添加到JsonLayout的消息元素中吗? 我已经尝试了这里列出的选项-> logging.apache.org/log4j/2.x/manual/layouts.html#JSONLayout 请救命!

  • 我试图使用HttpClient将“Accept Encoding”参数添加到我的HTTP头中,如“gzip,deflate”。代码如下所示。但是,我在响应中遇到以下错误,无法添加header参数。响应不包含添加的标题字段 错误:内部服务器错误

  • 我希望在邮件中插入一行“view.mail.warning”。它包含一个html代码,但是使用encodeas=“html”,消息也会显示一个href...而不显示链接。做这些事情的正确方法是什么?。我不想在以下部分中插入消息:(。 在普惠制中: <“p style='color:#ddd;font-size:12px;text-align:center;'><”g:message code=“v

  • 我使用的是Elasticsearch 2.3.1版 我想用java实现ES的Deletebyquery 我想知道在java api请求中哪里可以添加wait_for_completition标志,请告诉我。谢谢

  • 问题内容: 是否可以在向其添加一些参数数据的同时将请求转发给另一个控制器?我尝试添加到ModelMap中,但是它似乎不存在问题。我正在做类似的事情: 我能想到的唯一其他方法是将参数放在会话上,然后将其弹出目标控制器。 问题答案: 最简单的方法是将数据添加到请求中。 由于这是转发,因此将相同的请求传递到服务器内的不同处理程序。 作为示例,让我们从两个控制器的简单设置开始,一个转发到另一个: 添加数据

  • 我已经管理了add头,但没有管理Params。