get 是从服务器上获取数据 post是向服务器传输数据 对于get方式 服务器采用request.querystring获取变量的值 对于post方式 采用 request.from获取提交的数据
get的安全性比post小 但效率高
//同步get的方式 func synchronousGet() { //创建NSURL的对象 var url = NSURL(string: "http//:www.baidu.com") //创建请求的对象 缓存的协议 网络请求超出时间 var urlRequest = NSURLRequest(URL: url!, cachePolicy: NSURLRequestCachePolicy.UseProtocolCachePolicy, timeoutInterval: 10) //响应头的对象 var resp:NSURLResponse? //错误对象 var error:NSError? //发出请求 do { data = try NSURLConnection.sendSynchronousRequest(urlRequest, returningResponse: &resp) } catch{ print("失误") } var jsonString = NSString(data: data, encoding: NSUTF8StringEncoding) } //同步get的方式 func asynchronousGet() { //创建NSURL的对象 var url = NSURL(string: "http://www.baidu.com") //创建请求的对象 var request = NSURLRequest(URL: url!, cachePolicy: NSURLRequestCachePolicy.UseProtocolCachePolicy, timeoutInterval: 10) //链接服务器 var connection = NSURLConnection(request: request, delegate: self) } func connection(connection: NSURLConnection, didReceiveResponse response: NSURLResponse) { //接收响应 print("cao") } //接受到服务器传输数据的时候调用 此方法根据数据大小执行若干次 var jsonData = NSMutableData() func connection(connection: NSURLConnection, didReceiveData data: NSData) { //收到数据 self.jsonData.appendData(data) }同步post的方法
func synchronousPost() { //创建URL对象 var url = NSURL(string: "http://m.weather.com.cn/data/1010.10100.html") //创建请求的对象用nsurlrequest的子类来创建 var request = NSMutableURLRequest(URL: url!, cachePolicy: NSURLRequestCachePolicy.UseProtocolCachePolicy, timeoutInterval: 10) //使用post基本上是用http的协议 数据量也一般较小 如果较大的话 就是另外一回事了 //设置请求方式为Post 原先默认为get request.HTTPMethod = "POST" //设置参数 var str = "type=focus-c" var data = str.dataUsingEncoding(NSUTF8StringEncoding, allowLossyConversion: true) request.HTTPBody = data //响应的对象 var resp:NSURLResponse? //错误的对象 var error:NSError? //发出请求 do { received = try NSURLConnection.sendSynchronousRequest(request, returningResponse: &resp) } catch{ print("错误") } var jsonString = NSString(data: received, encoding: NSUTF8StringEncoding) print(jsonString) }异步post的方式
//异步post的方法 传输数据 func synchronousPost() { //创建URL对象 var url = NSURL(string: "http://m.weather.com.cn/data/1010.10100.html") //创建请求的对象用nsurlrequest的子类来创建 var request = NSMutableURLRequest(URL: url!, cachePolicy: NSURLRequestCachePolicy.UseProtocolCachePolicy, timeoutInterval: 10) //使用post基本上是用http的协议 数据量也一般较小 如果较大的话 就是另外一回事了 //设置请求方式为Post 原先默认为get request.HTTPMethod = "POST" //设置参数 var str = "type=focus-c" var data = str.dataUsingEncoding(NSUTF8StringEncoding, allowLossyConversion: true) request.HTTPBody = data //响应的对象 var resp:NSURLResponse? //错误的对象 //链接服务器 var connection = NSURLConnection(request: request, delegate: self) }