IOS Swift3.0 URLSessionTask get/post

       /* info.plist
     <key>NSAppTransportSecurity</key>
     <dict>
     <key>NSAllowsArbitraryLoads</key>
     <true/>
     </dict>
     */

//该方法为异步执行,所以不需要创建单独线程。

@IBAction func btn1(_ sender: Any) {//get

         let urlString = "http://appio.cn/WebTest/LoginTest.jsp"
         let url = URL(string:urlString)
         //创建请求对象
         let request = URLRequest(url: url!)
         
         let session = URLSession.shared
         let dataTask = session.dataTask(with: request,
         completionHandler: {(data, response, error) -> Void in
         if error != nil{
         print(error.debugDescription)
         }else{
         let str = String(data: data!, encoding: String.Encoding.utf8)
         print(str ?? "helllo")
         }
         }) as URLSessionTask
         
         //使用resume方法启动任务
         dataTask.resume()
    }
    
    @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解析, 做逻辑
                    } else {
                        //通知UI接口执行失败
                    }
                }
                /*
                if let response = resp as? HTTPURLResponse {
                    print("code\(response.statusCode)")
                    for (tab, result) in response.allHeaderFields {
                        print("(tab.description) - (result)")
                    }
               }*/
            }
        }) as URLSessionTask
        dataTask.resume()   //执行任务
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值