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格式 ...
随机推荐
- hdu 1198 Farm Irrigation
令人蛋疼的并查集…… 我居然做了大量的枚举,居然过了,我越来越佩服自己了 这个题有些像一个叫做“水管工”的游戏.给你一个m*n的图,每个单位可以有11种选择,然后相邻两个图只有都和对方连接,才判断他们 ...
- Spring Bean基本管理--bean注入方式汇总
依赖注入方式:Spring支持两种依赖注入方式,分别是属性注入和构造函数注入.还有工厂方法注入方式. 依赖注入还分为:注入依赖对象可以采用手工装配或自动装配,在实际应用开发中建议使用手工装配,因为自动 ...
- XtraGrid的若干种用法 z
支持多种类型的数据集合作为数据源 XtraGrid与传统的DataGridView一样,支持多种类型作为其数据源.下面例子是将DataTable, List<T>和数组分别绑定到XtraG ...
- C/C++面试小知识点
1.static有什么用途. 解答: 在函数体中,一个被声明为静态的变量在这一函数被调用过程中维持其值不变. 在模块内(但在函数体外),一个被声明为静态的变量可以被模块内所有函数访问,但不能被模块外其 ...
- 【转】OFBiz安全组
安全组标识 描述 用户系统级别BIZADMIN 全部商业应用程序权限组,具有全部商业应用程序管理权限,不是技术人员权限. bizadmin FLEXADMIN 缓存管理组,具有全部颗粒的权限. fle ...
- 【数据结构和算法】 O(1)时间取得栈中的最大 / 最小元素值
常数时间取得栈中的元素最大值和最小值,我们可以想到当push的时候比较一下,如果待push元素值小于栈顶元素,则更新min值,最大值亦然. 这样有个问题就是当pop的时候,就没了最大最小值. 于是上网 ...
- 自学hadoop(三)
1) 关于hadoop在eclipse插件.经过自己的摸爬滚打.总结一下三条. a) 2.0或者0.23.0吧 google比较方便.其他的可以自己编译.(这个我不敢保证.我本地环境事2.1. ...
- Chapter 2 创建一个应用
App Engine开发模式如下一般简单<1.The App Engine development model is as simple as it gets:>: 1.创建这个应用 2. ...
- HttpServletRequest 的使用
1. 从HttpServletRequest中读取请求参数 InputStream inStream = request.getInputStream(); ByteArrayOutputStream ...
- Java设计模式系列之状态模式
状态模式(State)的定义 定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新.允许一个对象在其内部状态改变时改变它的行为.对象看起来似乎修改了它 ...