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格式 ...
随机推荐
- 24、AR技术
什么是AR 在介绍增强现实(AR)之前,需要先说说虚拟现实(VR) 虚拟现实是从英文Virtual Reality 一词翻译过来的,简称VR.VR 技术是采用以计算机技术为核心的技术,生成逼真的视.听 ...
- (原创)LAMP教程1-下载虚拟机软件
(原创)LAMP教程1 从今天开始会在我的博客更新LAMP教程,第一章节就是安装虚拟机,因为不可能所有的人都有机会操作服务器,所以今天我打算教大家用虚拟机安装配置当下比较流行的框架,lamp. 好了费 ...
- Linux时间与Windows差8个时区的问题解决方法
我的Debian7.1的时间与windows上的时间不一致,正好差8个时区,原因是Debian将机器的物理时间理解为UTC时间了.去网上找了好多文章,基本上都是说要改/etc/default/rcS, ...
- C++的笔记学习第一篇,认识C++
在一个类中包含两种成员: 数据和函数,分别称为C++数据成员和成员函数. 关于类: 类是C++新增加的重要数据类型,有了类,就就可以实现面向对象程序设计方法中的封装.信息隐蔽.继承.派生.多态等功能. ...
- JQuery笔记:JQuery和JavaScript的联系与区别
来源:http://www.ido321.com/1019.html ps:LZ觉得这个标题有点大了,超出了能力范围,不喜勿碰.目前只记录LZ能力范围内的,日后持续补充. 一.JQuery对象和DOM ...
- WeChat Official Account Admin Platform API Introduction
Keyword: WeChat API Introduction Message and GeneralAuthor: PondBay Studio[WeChat Developer EXPERT] ...
- java 最佳且开源的反编译工具
1.jad:2.jode 很多gui的反编译工具(decafe,DJ,cavaJ)差不多都是基于jad和jode的.
- GDB中应该知道的几个调试方法
七.八年前写过一篇<用GDB调试程序>,于是,从那以后,很多朋友在MSN上以及给我发邮件询问我关于GDB的问题,一直到今天,还有人在问GDB的相关问题.这么多年来,有一些问题是大家反复在问 ...
- nova --debug image-list
nova --debug image-list DEBUG (session:) REQ: curl -g -i -X GET http://liberty-aio:35357/v3 -H " ...
- thymeleaf学习
一.简单表达格式: thymeleaf的官方参考文档 1.变量的表达式:${...} 2.选择变量表达式:*{...} 3.信息表达:#{...} 4.链接URL表达式:@{...} 二.字面值 ...