iOS开发——网络Swift篇&NSURL进行数据请求(POST与GET)
NSURL进行数据请求(POST与GET)
(1)同步请求
//保存分数 func saveScore(score:Int, userid:String) { let urlString:String = "http://hangge.com/" var url:NSURL! url = NSURL(string:urlString) var request = NSMutableURLRequest(URL:url) var body = "score=\(score)&user=\(userid)" //编码POST数据 var postData = body.dataUsingEncoding(NSUTF8StringEncoding) //保用 POST 提交 request.HTTPMethod = "POST" request.HTTPBody = postData //响应对象 var response:NSURLResponse? //错误对象 var error:NSError? //发出请求 var received:NSData? = NSURLConnection.sendSynchronousRequest(request, returningResponse: &response, error: &error) if(error != nil){ println(error?.code) println(error?.description) }else{ var datastring = NSString(data:received!, encoding: NSUTF8StringEncoding) println(datastring) } }
(2)异步请求
import UIKit class ScoreController:NSObject, NSURLConnectionDataDelegate { //保存分数 func saveScore(score:Int, userid:String) { let urlString:String = "http://hangge.com/savescore.php" var url:NSURL! url = NSURL(string:urlString) var request = NSMutableURLRequest(URL:url) var body = "score=\(score)&user=\(userid)" //编码POST数据 var postData = body.dataUsingEncoding(NSASCIIStringEncoding) //保用 POST 提交 request.HTTPMethod = "POST" request.HTTPBody = postData var conn:NSURLConnection! conn = NSURLConnection(request: request,delegate: self) conn.start() println(conn) } func connection(connection: NSURLConnection!, didReceiveResponse response: NSURLResponse!) { println("请求成功!"); println(response) } func connection(connection: NSURLConnection!, didReceiveData data: NSData!) { println("请求成功1!"); var datastring = NSString(data:data, encoding: NSUTF8StringEncoding) println(datastring) } func connectionDidFinishLoading(connection: NSURLConnection!) { println("请求成功2!"); } }
(1)同步请求
//获取分数 func getScore(user:String){ let urlString:String="http://hangge.com/getscore.php?user=\(user)" var url:NSURL! url = NSURL(string:urlString) var request = NSMutableURLRequest(URL:url) request.HTTPMethod = "GET" //响应对象 var response:NSURLResponse? //错误对象 var error:NSError? //发出请求 var received:NSData? = NSURLConnection.sendSynchronousRequest(request, returningResponse: &response, error: &error) if(error != nil){ println(error?.code) println(error?.description) }else{ var datastring = NSString(data:received!, encoding: NSUTF8StringEncoding) println(datastring) } }
(2)异步请求
import UIKit class ScoreController:NSObject, NSURLConnectionDataDelegate { //获取分数 func getScore(user:String) { let urlString:String="http://hangge.com/getscore.php?user=\(user)" var url:NSURL! url = NSURL(string:urlString) var request = NSMutableURLRequest(URL:url) var body = "user=\(user)" request.HTTPMethod = "GET" var conn:NSURLConnection! conn = NSURLConnection(request: request,delegate: self) conn.start() println(conn) } func connection(connection: NSURLConnection!, didReceiveResponse response: NSURLResponse!) { println("请求成功!"); println(response) } func connection(connection: NSURLConnection!, didReceiveData data: NSData!) { println("请求成功1!"); var datastring = NSString(data:data, encoding: NSUTF8StringEncoding) println(datastring) //解析 JSON 数据 var json : AnyObject! = NSJSONSerialization.JSONObjectWithData(data, options:NSJSONReadingOptions.AllowFragments,error:nil) var score = json.objectForKey("score") as Int println(score) } func connectionDidFinishLoading(connection: NSURLConnection!) { println("请求成功2!"); } }
iOS开发——网络Swift篇&NSURL进行数据请求(POST与GET)的更多相关文章
- iOS开发——网络Swift篇&JSON与XML数据解析
JSON与XML数据解析 JSON数据解析(内置NSJSONSerialization与第三方JSONKit) 一,使用自带的NSJSONSerialization 苹果从IOS5.0后推出了SD ...
- iOS开发——网络Swift篇&NSURLSession加载数据、下载、上传文件
NSURLSession加载数据.下载.上传文件 NSURLSession类支持三种类型的任务:加载数据.下载和上传.下面通过样例分别进行介绍. 1,使用Data Task加载数据 使用全局的 ...
- iOS 开发——实用技术Swift篇&Swift 懒加载(lazy)
Swift 懒加载(lazy) 在程序设计中,我们经常会使用 * 懒加载 * ,顾名思义,就是用到的时候再开辟空间,比如iOS开发中的最常用控件UITableView,实现数据源方法的时候,通常我们都 ...
- ios开发——实战Swift篇&简单项目的实现
学了这么久的swift语法和相关技术,今天忍不住手痒痒就写了一个swift的小项目,这个项目非常简单(只是使用一个UITableView),但是里面的功能却非常有用. 我们要实现的功能是这样的: 程序 ...
- iOS开发——常识swift篇&随机数获取
随机数获取 arc4random()这个全局函数会生成9位数的随机整数 1,下面是使用arc4random函数求一个1~100的随机数(包括1和100) var temp:Int = ...
- ios开发网络学习六:设置队列请求与RunLoop
#import "ViewController.h" @interface ViewController ()<NSURLConnectionDataDelegate> ...
- iOS开发网络篇—数据缓存
iOS开发网络篇—数据缓存 一.关于同一个URL的多次请求 有时候,对同一个URL请求多次,返回的数据可能都是一样的,比如服务器上的某张图片,无论下载多少次,返回的数据都是一样的. 上面的情况会造 ...
- iOS开发网络篇—发送json数据给服务器以及多值参数
iOS开发网络篇—发送json数据给服务器以及多值参数 一.发送JSON数据给服务器 发送JSON数据给服务器的步骤: (1)一定要使用POST请求 (2)设置请求头 (3)设置JSON数据为请求体 ...
- iOS开发网络篇—JSON数据的解析
iOS开发网络篇—JSON数据的解析 iOS开发网络篇—JSON介绍 一.什么是JSON JSON是一种轻量级的数据格式,一般用于数据交互 服务器返回给客户端的数据,一般都是JSON格式或者XML格式 ...
随机推荐
- Docker管理面板Crane开源了!
导读 数人云容器管理面板 Crane 开源啦!Crane 包含着数人云工程师对 Docker 最新技术的热爱和实践.希望借助开源社区的力量,让 Crane 完善自身,更好地成长起来,让更多的国内用户体 ...
- Android入门:发送HTTP的GET和POST请求
HTTP的请求详解在我的博客中已经讲解过: http://blog.csdn.net/xiazdong/article/details/7215296 我在http://blog.csdn.net/x ...
- PHP学习笔记--文件目录操作(文件上传实例)
文件操作是每个语言必须有的,不仅仅局限于PHP,这里我们就仅用PHP进行讲解 php的文件高级操作和文件上传实例我放在文章的最后部分.--以后我还会给大家写一个PHP类似于网盘操作的例子 注意:阅读此 ...
- linux常用命令之--目录与文件的操作命令
1.linux的目录与文件的增.删.改.复制 pwd:用于显示当前所在的目录 ls:用于显示指定目录下的内容 其命令格式如下: ls [-option] [file] 常用参数: -l:显示文件和目录 ...
- SqlServer获取两个日期时间差
SELECT datediff(yy,'2010-06-1 10:10',GETDATE()) --计算多少年 SELECT datediff(q,'2011-01-1 10:10',GETDATE( ...
- IOS-day03_OC中的get和set
OC中的get和set实质和C#/java中的一样 只是表现形式不同而已 如下: @interface Car : NSObject { int wheels; } -(void) run; -(vo ...
- 使用k-means对3D网格模型进行分割
使用k-means对3D网格模型进行分割 由于一些原因,最近在做网格分割的相关工作.网格分割的方法有很多,如Easy mesh cutting.K-means.谱分割.基于SDF的分割等.根据对分割要 ...
- hive 传递变量的两种方式
在使用hive开发数据分析代码时,经常会遇到需要改变运行参数的情况,比如select语句中对日期字段值的设定,可能不同时间想要看不同日期的数据,这就需要能动态改变日期的值.如果开发量较大.参数多的话, ...
- 我是面试官--"自我介绍"
工作10余年,经历过很多次面试,也面试了N多人.这些年来,已经有好些位朋友(或同事)与我聊起相关话题,涉及面试,更关乎职业生涯规划.感触颇多,就借助自媒体的浪潮,与更多的程序员一起共谈面试经历,希望可 ...
- 【转】VC6.0附带小工具软件一览
)ActiveX Control Test Container称为"ActiveX 控件测试容器",顾名思义,此工具的主要功能就是测试ActiveX 控件,可以通过改变Active ...