【问题标题】:JSON parse error from server when making request with Alamofire in swift 4在 swift 4 中使用 Alamofire 发出请求时来自服务器的 JSON 解析错误
【发布时间】:2017-11-14 11:31:27
【问题描述】:

我需要向 api 发出 post 请求并从响应中获取数据。 api返回如下响应:

{
    valid: true
}

{
    valid: false
}

我的 Alamofire 请求如下所示:

parameters = ["key": "somekey"]
let headers: HTTPHeaders = [
                "Content-Type": "application/json",
                "Authorization": "JWT \(token)"
            ]
Alamofire.request(baseURL, method: .post, parameters: parameters, headers: headers).responseJSON{
    response in
    if let result = response.result.value {
                        let JSON = result as! NSDictionary
                        print(JSON) //{ detail = "JSON parse error - Expecting value: line 1 column 1 (char 0)"}
                    }

我似乎无法从服务器获取 JSON 数据以提取 valid 的值。相反,我得到了错误:detail = "JSON parse error - Expecting value: line 1 column 1 (char 0)" from the server

【问题讨论】:

    标签: json swift alamofire swift4


    【解决方案1】:

    原来我在请求 encoding: JSONEncoding.default 中没有包含一个重要参数。(我猜顺序很重要)这是有效的:

    parameters = ["key": "somekey"]
    let headers: HTTPHeaders = [
                    "Content-Type": "application/json",
                    "Authorization": "JWT \(token)"
                ]
    Alamofire.request(baseURL, method: .post, parameters: parameters, encoding: JSONEncoding.default, headers: headers)
                    .responseJSON{
                        response in
                        if let result = response.result.value {
                            let JSON = result as! NSDictionary
                            print(JSON) //SUCCESS :{valid: 0}
                        }
    

    【讨论】:

      猜你喜欢
      • 2019-03-19
      • 2018-10-25
      • 1970-01-01
      • 1970-01-01
      • 2018-04-20
      • 2023-03-20
      • 2018-07-30
      • 2018-09-05
      • 1970-01-01
      相关资源
      最近更新 更多