【问题标题】:Send a single integer (as it is a valid JSON object) in an Alamofire post request在 Alamofire 发布请求中发送一个整数(因为它是一个有效的 JSON 对象)
【发布时间】:2021-03-07 07:08:23
【问题描述】:

所以我只需要向 API 发送一个整数。单个整数是有效的 JSON 对象,但 Alamofire 需要字典作为参数。甚至可以只发送一个整数吗?

我得到的错误是这样的:

无法将“Int”类型的值转换为预期的参数类型 '参数?' (又名'可选>')

【问题讨论】:

  • 我不确定这一点,但看起来您无法发送单个整数。相反,您需要使用密钥将其包装在 Dictionary 中。

标签: swift api post request alamofire


【解决方案1】:

希望你的一切!哥们!

只有一个整数不是有效的 JSON。

大概是向“text/plain”内容类型发送一个整数值。

或者,发送一个带有键值的整数值。

示例:

{"someKey":1}

告诉我,还有什么事情

【讨论】:

  • “只有一个整数不是有效的 JSON” 这不是真的。试试let dataInt = try! JSONEncoder().encode(1)顺便说一句你也可以使用jsonlint检查jsonlint.com
  • 或者使用JSONSerialization JSONSerialization.data(withJSONObject: 1, options: .fragmentsAllowed)
【解决方案2】:

虽然@Peter 是对的,并且单个Int 不是有效的JSON(JSONEncoders 支持不支持),但您可以通过将Int 作为参数直接发送来完成此操作,您只需要使用重载的request 使用encoder 参数而不是encoding 参数。

request(..., encoder: JSONParameterEncoder.default)

【讨论】:

    猜你喜欢
    • 2022-08-22
    • 2015-04-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-25
    • 1970-01-01
    • 2015-10-25
    • 2022-09-23
    • 1970-01-01
    相关资源
    最近更新 更多