IOS Swift3.0 URLSession和Json解析

在plist.info中加入如下内容

    <key>NSAppTransportSecurity</key>
    <dict>
        <key>NSAllowsArbitraryLoads</key>
        <true/>
    </dict>



    @IBAction func btn2(_ sender: Any) {//post
        let StrUrl = "http://appio.cn/WebTest/LoginCheck" //访问url
        let StrBody = "username=admin&password=1234"      //post提交数据
        let postNSData = StrBody.data(using: String.Encoding.utf8 ) //也可以写作 let postData = StrBody.data(using: .utf8)
        let url = URL(string: StrUrl)
        
        var request = URLRequest(url: url!)   //请求
        request.httpMethod = "POST"   //Post方法
        request.httpBody = postNSData
        
        //初始化请求
        let dataTask = URLSession.shared.dataTask(with: request, completionHandler: { (data, resp, err) in
            if err != nil {
                print(err.debugDescription)
            }
            else {
                let responseStr = String(data: data!, encoding: String.Encoding.utf8)
                print(responseStr!) //包体数据
                
                //URLResponse类里没有http返回值, 需要先强制转换!
                let httpResponse = resp as? HTTPURLResponse
                if (httpResponse != nil) {
                    if httpResponse!.statusCode == 200 {
                        //JSON解析
                        if let json = try? JSONSerialization.jsonObject(with: data!, options: .allowFragments) as! [String : Any] {
                            print("---------------------------------------------")
                            /* 返回json数据格式      {"status":"ok","msg":"welcome","data":["100","220","300","400"]}     */
                            
                            //读取普通数据
                            let strMsg2 = json["msg"] as! String
                            print(strMsg2)
                            
                            //读取数组
                            var array: [String] = json["data"] as! [String]
                            for index in 0..<array.count{
                                print( array[index])
                            }
                        }
                    } else {
                        //通知UI接口执行失败
                    }
                }
            }
        }) as URLSessionTask
        dataTask.resume()   //执行任务
    }
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值