【问题标题】:FAILURE: responseSerializationFailed(reason: Alamofire.AFError.ResponseSerializationFailureReason.inputDataNilOrZeroLength)失败:responseSerializationFailed(原因:Alamofire.AFError.ResponseSerializationFailureReason.inputDataNilOrZeroLength)
【发布时间】:2019-02-25 09:12:12
【问题描述】:

我正在尝试使用 Alamofire 读取 JSON。这是我的代码:

    let headers = ["Content-Type": "application/json"]

    func getConfirmationCode(params: [String:Any], block: @escaping(_ data : JSON, _ success : Bool) -> Void) {
    if let url = URL(string: baseURL + "getConfirmationCode.php") {
        Alamofire.request(url, method: .post, parameters: params, encoding: JSONEncoding.default, headers: headers).responseJSON { (response) in
            DispatchQueue.main.async {
                if let value = response.result.value {
                    let json = JSON(value)
                    block(json, true)
                } else {
                    block(JSON.null, false)
                }
            }
        }
    }
}

JSON 是有效的,在 Postman 中一切正常,但我无法使其正常工作。网络上的建议都没有帮助(将 responseJSON 更改为 responseString/responseData,将 JSONEncoding.default 更改为 URLEncoding.default 等)

谁能帮帮我?

【问题讨论】:

  • 您是否比较过您的 Postman 和应用内请求?
  • @Emma,我也遇到了同样的问题,你找到解决办法了吗?

标签: ios json swift alamofire


【解决方案1】:

您应该尝试在响应部分的“预览”选项卡中检查邮递员的响应。有时它会在“漂亮”部分显示正确的 json。但在“预览”部分,它很多包含一些 API 响应的打印语句。并且那些打印语句在 json 解码中产生问题。

另外,如果您想获得邮递员响应的快速代码,您可以随时从邮递员的代码功能中获取它:

希望这会有所帮助..!

【讨论】:

    猜你喜欢
    • 2020-11-11
    • 2018-02-27
    • 2018-06-04
    • 2013-06-26
    • 2013-12-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多