swift3.0 post Json解析
? ??func post(){
?? ? ? ?
? ? ? ? //對請求路徑的說明
?? ? ? ?
? ? ? ? //"http:"
?? ? ? ?
? ? ? ? //協議頭+主機地址+接口名稱
?? ? ? ?
? ? ? ? //協議頭(http://)+接口名稱(login)
?? ? ? ?
? ? ? ? //POST請求需要修改請求方法為POST,并把參數轉換為二進制數據設置為請求體
?? ? ? ?
? ? ? ? //1.創建會話對象
?? ? ? ?
? ? ? ? var session: URLSession = URLSession.shared
?? ? ? ?
? ? ? ? //2.根據會話對象創建task
?? ? ? ?
? ? ? ? var url: NSURL = NSURL(string: "http:")!
?? ? ? ?
? ? ? ? //3.創建可變的請求對象
?? ? ? ?
? ? ? ? var request: NSMutableURLRequest = NSMutableURLRequest(url: url as URL)
?? ? ? ?
? ? ? ? //4.修改請求方法為POST
?? ? ? ?
? ? ? ? request.httpMethod = "POST"
?? ? ? ?
? ? ? ? //5.設置請求體
?? ? ? ?
? ? ? ? request.httpBody = " ".data(using: String.Encoding.utf8)
?? ? ? ?
? ? ? ? //6.根據會話對象創建一個Task(發送請求)
?? ? ? ?
? ? ? ? /*
? ? ? ? ?
?? ? ? ? 第一個參數:請求對象
? ? ? ? ?
?? ? ? ? 第二個參數:completionHandler回調(請求完成【成功|失敗】的回調)
? ? ? ? ?
?? ? ? ? data:響應體信息(期望的數據)
? ? ? ? ?
?? ? ? ? response:響應頭信息,主要是對服務器端的描述
? ? ? ? ?
?? ? ? ? error:錯誤信息,如果請求失敗,則error有值
? ? ? ? ?
?? ? ? ? */
?? ? ? ?
? ? ? ? var dataTask: URLSessionDataTask = session.dataTask(with: request as URLRequest) { (data, response, error) in
?? ? ? ? ? ?
? ? ? ? ? ? //if(error == nil){
?? ? ? ? ? ?
? ? ? ? ? ? //8.解析數據
?? ? ? ? ? ?
? ? ? ? ? ? //說明:(此處返回的數據是JSON格式的,因此使用NSJSONSerialization進行反序列化處理)
?? ? ? ? ? ?
? ? ? ? ? ? var dict:NSDictionary? = nil
?? ? ? ? ? ?
? ? ? ? ? ? do {
?? ? ? ? ? ? ? ?
? ? ? ? ? ? ? ? dict? = try JSONSerialization.jsonObject(with: data!, options:JSONSerialization.ReadingOptions.init(rawValue: 0)) as! NSDictionary
?? ? ? ? ? ? ? ?
? ? ? ? ? ? } catch {
?? ? ? ? ? ? ? ?
?? ? ? ? ? ? ? ?
?? ? ? ? ? ? ? ?
? ? ? ? ? ? }
?? ? ? ? ? ?
? ? ? ? ? ? print(dict?.value(forKey: "result"))
?? ? ? ? ? ?
? ? ? ? ? ? //}
? ? ? ? }
? ? ? ? //5.執行任務
? ? ? ? dataTask.resume()
?? ? ? ?
?? ? ? ?
? ? }
總結
以上是生活随笔為你收集整理的swift3.0 post Json解析的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: CSS filter中有什么用
- 下一篇: iOS开发-缓存图片到沙盒--思路