【问题标题】:Not getting json response on first click using alamofire使用 alamofire 首次单击时未获得 json 响应
【发布时间】:2017-06-20 07:00:45
【问题描述】:

我正在使用 alamofire 获取 JSON 响应。 当我第一次单击按钮时,我没有得到响应。几次后我检查过,以确定我的网速是否低。互联网速度还可以,每次发生这种情况时仍然没有进入 if 条件来打印响应。请帮忙。提前致谢!!

下面是我的代码

Alamofire.request(url).responseJSON { response in

                if let JSON = response.result.value
                {
                    let responseRes = JSON as? Dictionary<String,AnyObject>
                    print("Response = \(responseRes!)")
                }
            }

【问题讨论】:

  • 请尝试:- 让 responseRes = JSON["data"]!作为!数组

标签: json swift3 alamofire


【解决方案1】:

这将在 Swift 3.1

中完美运行
func testURL () {
    let parameter = ["id": 19, "name": "", "image_name": "", "largeimage": "", "catdata": ["category_name"]] as [String: Any]
    //Here parameter as per your web service.
    //var parameter = [String : Any]()
    //print("t:-\(parameter)")
    guard let url = URL(string: "YourWebServiceURL") else { return }
    var request = URLRequest(url: url)
    request.httpMethod = "POST"
    guard let httpBody = try? JSONSerialization.data(withJSONObject: parameter, options: []) else { return }

    request.httpBody = httpBody

    request.addValue("application/json", forHTTPHeaderField: "Content-Type")

    let session = URLSession.shared
    session.dataTask(with: request) {(data:Data?, response:URLResponse?, error:Error?) in
        if let response = response {
            print(response)

            do {
                    let json = try JSONSerialization.jsonObject(with: data!) as! [String: Any]

                print(json["data"]!)
                let dataarray = json["data"]! as! Array<Any>
                for i  in dataarray {
                    let webServiceArray = i as! [String : Any]
                    //Below all the Object as per you webService objects.
                    print(webServiceArray["name"]!)
                    print(webServiceArray["largeimage"]!)
                    print(webServiceArray["image_name"]!)
                    print(webServiceArray["id"]!)
                }
            } catch {
                print("Error deserializing JSON: \(error)")
            }
        }
    }
        .resume()
}

ViewDidLoad中访问此功能。

【讨论】:

  • 我想用 alamofire 来做这个。如果可能,请给出解决方案。谢谢
  • 你能把你的网络服务的链接发给我吗?
猜你喜欢
  • 2020-04-27
  • 2018-12-22
  • 1970-01-01
  • 1970-01-01
  • 2018-09-14
  • 1970-01-01
  • 1970-01-01
  • 2023-03-17
  • 2016-10-02
相关资源
最近更新 更多