使用 alamofire 首次单击时未获得 json 响应
Posted
技术标签:
【中文标题】使用 alamofire 首次单击时未获得 json 响应【英文标题】:Not getting json response on first click using alamofire 【发布时间】: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"]!作为!数组 【参考方案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 来做这个。如果可能,请给出解决方案。谢谢 你能把你的网络服务的链接发给我吗?以上是关于使用 alamofire 首次单击时未获得 json 响应的主要内容,如果未能解决你的问题,请参考以下文章
使用 OHHTTPStubs 模拟时未达到 Alamofire 响应块