11.11网络编程

//ViewController.swift

importUIKit

classViewController:UIViewController{

/*

URL:全球资源定位符

*/

/*

get请求/post请求:

(1)安全性:post安全性比较高

(2)get用于一般请求,涉及到用户隐私数据的话采用post

*/

overridefuncviewDidLoad() {

super.viewDidLoad()

//post请求链接:

letpostUrlString ="http://ipad-bjwb.bjd.com.cn/DigitalPublication/publish/Handler/APINewsList.ashx?"

//post请求体:

letbodyString ="cid=213&startRecord=1&len=5&udid=1234567890&terminalType=Iphone&date=20131129"

leturl =NSURL(string: postUrlString)

//创建一个可变的请求对象(必须是可变的,因为我们要设置它的请求方式和请求体)

varrequest =NSMutableURLRequest(URL: url!)

//设置请求方式

request.HTTPMethod="POST"

//将上面的请求参数序列化成NSData类型的数据

//4代表UTF-8编码

letdata = bodyString.dataUsingEncoding(4)

//data设置为请求对象的请求体

request.HTTPBody= data

//创建对话

letsession =NSURLSession(configuration:NSURLSessionConfiguration.defaultSessionConfiguration())

//发起任务

lettask = session.dataTaskWithRequest(request, completionHandler: { (data, url, error) ->Voidin

//请求成功进行反序列化

letroot:AnyObject? =NSJSONSerialization.JSONObjectWithData(data!, options:NSJSONReadingOptions.MutableContainers, error:NSErrorPointer())

println(root)

})

task.resume()

}

funcgetRequest(){

leturlString ="http://bea.wufazhuce.com/OneForWeb/one/getC_N?strDate=2015-11-18&strRow=2&strMS=1"

//NSUELRequest:将网址对象包装成一个请求对象

leturl =NSURL(string: urlString)

letrequest =NSURLRequest(URL: url!)

//创建对话

letconfiguration =NSURLSessionConfiguration.defaultSessionConfiguration()

letsession =NSURLSession(configuration: configuration)

//session发起get请求

lettask = session.dataTaskWithRequest(request, completionHandler: { (data, response, error) ->Voidin

//请求完成回调的闭包

letrootDict:[String:AnyObject] =NSJSONSerialization.JSONObjectWithData(data, options:NSJSONReadingOptions.MutableContainers, error:NSErrorPointer())as![String:AnyObject]

letresult = rootDict["result"]as!String

println(result)

})

//开始任务

task.resume()

}

//使用NSURL进行get请求

funcgetNSURL(){

leturlString ="http://bea.wufazhuce.com/OneForWeb/one/getC_N?strDate=2015-11-18&strRow=2&strMS=1"

//请求对象NSURL:iOS中对全球资源定位符封装的一个对象

//将上面字符串网址封装成一个网址对象

leturl:NSURL=NSURL(string: urlString)!

//NSURLSession:网络对话

//网络对话的配置:涉及到网络任务是否在后台执行,应用程序休眠的时候网络任务是否要继续,一般使用默认的配置就足够了

letconfiguration =NSURLSessionConfiguration.defaultSessionConfiguration()

//创建一个对话

letsession =NSURLSession(configuration: configuration)

//发起请求任务(data:请求成功获取到的数据,urlResponse:请求头,error:请求失败的错误信息)

lettask = session.dataTaskWithURL(url, completionHandler: { (data, urlResponse, error) ->Voidin

//将获取的数据进行反序列成根节点

letrootDict:[String:AnyObject] =NSJSONSerialization.JSONObjectWithData(data, options:NSJSONReadingOptions.MutableContainers, error:NSErrorPointer())as![String:AnyObject]

letresult = rootDict["result"]as!String

println(result)

iferror !=nil{

println("网络出错")

}

})

//开始任务

task.resume()

}

overridefuncdidReceiveMemoryWarning() {

super.didReceiveMemoryWarning()

// Dispose of any resources that can be recreated.

}

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容