swift中的网络请求——NSURLConnection

本文介绍了如何在Swift中利用NSURLConnection进行网络请求。通过提供的GitHub学习资源,可以了解详细步骤并查看实际效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

学习地址:https://github.com/potato512/SYSwiftLearning

效果图


在swift中使用NSURLConnection进行网络请求

// NSURL
let url:NSURL = NSURL(string:"http://rapapi.org/mockjsdata/22598/userloginGet")!
// 请求(可以改的请求)
let request:NSMutableURLRequest = NSMutableURLRequest(URL: url)
// 默认就是GET请求
request.HTTPMethod = "GET"
// 发起请求
NSURLConnection.sendAsynchronousRequest(request, queue:NSOperationQueue()) {
                (response, data, error)in
            
            print(response)
            print(data)
            print(error)
            
            do {
//                let result = NSString(data: data!, encoding:NSUTF8StringEncoding)
                
                let result:NSDictionary = try NSJSONSerialization.JSONObjectWithData(data!, options: NSJSONReadingOptions.AllowFragments) as! NSDictionary
                print(result)
                
                dispatch_async(dispatch_get_main_queue(), {
                    () -> Void in
                    let message:String = result.objectForKey("msg") as! String
                    let alert = UIAlertView(title: nil, message: message, delegate: nil, cancelButtonTitle: "OK")
                    alert.show()
                })
                
            } catch {
                
            }
        }
}

// NSURL
let url:NSURL = NSURL(string:"http://rapapi.org/mockjsdata/22598/userloginPostWithParams")!
// 请求(可以改的请求)
let request:NSMutableURLRequest = NSMutableURLRequest(URL: url)
// POST请求
request.HTTPMethod = "POST"
// 数据体
let params:NSMutableDictionary = NSMutableDictionary()
params["userName"] = "devZhang"
params["userPassword"] = "devZhang"
var jsonData:NSData? = nil
do {
            jsonData  = try NSJSONSerialization.dataWithJSONObject(params, options:NSJSONWritingOptions.PrettyPrinted)
        } catch {
            
}
// 将字符串转换成数据
request.HTTPBody = jsonData
// 发起请求
NSURLConnection.sendAsynchronousRequest(request, queue:NSOperationQueue()) {
            (response, data, error)in
            
            print(response)
            print(data)
            print(error)
            
            do {
//                let result = NSString(data: data!, encoding:NSUTF8StringEncoding)
                
                let result:NSDictionary = try NSJSONSerialization.JSONObjectWithData(data!, options: NSJSONReadingOptions.AllowFragments) as! NSDictionary
                print(result)
                
                dispatch_async(dispatch_get_main_queue(), {
                    () -> Void in
                    let message:String = result.objectForKey("msg") as! String
                    let alert = UIAlertView(title: nil, message: message, delegate: nil, cancelButtonTitle: "OK")
                    alert.show()
                })
                
            } catch {
                
            }

}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

番薯大佬

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值