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格式 ...
随机推荐
- Storm入门教程 第三章Storm集群安装部署步骤、storm开发环境
一. Storm集群组件 Storm集群中包含两类节点:主控节点(Master Node)和工作节点(Work Node).其分别对应的角色如下: 主控节点(Master Node)上运行一个被称为N ...
- DBCP连接池原理分析及配置用法
DBCP连接池介绍 ----------------------------- 目前 DBCP 有两个版本分别是 1.3 和 1.4. DBCP 1.3 版本需要运行于 JDK 1.4-1.5 ,支持 ...
- C++中引用的本质是什么?
一般的教材上讲到引用时,都是说“引用是对象的一个别名”.我认为这种定义是不清晰的,不利于初学者理解引用.至少我自己曾经被这个定义困扰了一段时间.到底什么是“别名”? 实际上,引用的实质是位于xxxxx ...
- UiThread DEMO
import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import android.a ...
- UVALive 5029
用字典树来查询,关键是怎么处理输入的8个数字代表的字符,把每个数分别除以0.95和1.05得到8的区间,按左区间从小到大排序,那么和第一个区间有交集的必然代表二进制0,与它没交集的之后都是1,因为题目 ...
- BLOCK专题
>>定义并使用一个block 返回值(^名字)(参数列表) =^返回值类型(参数列表){表达式}; 其中返回值和参数列表可以神略 ,最简单的block是 ^{xxxx}; voi ...
- sizeof和strlen小结
sizeof和strlen小结 写在前面 之所以要总结一下sizeof和strlen的用法和区别,是因为这些知识可以帮助我们更加深入的理解各种数据结构在内存中的占用情况,也许表面上看好像没有多大用处, ...
- linux下安装pkg-config时遇到"glib-2.0>=2.16"的错
解决办法 如报错提示所述,加上:--with-internal-glib 即 ./configure --with-internal-glib 参考链接: http://stackoverflow.c ...
- 在Ubuntu6.06 在搭建SVN服务器及在windows建立svn+ssh客户端 (续)
接上篇.本篇主要介绍windows下建立svn+ssh客户端. 9.在windows下安装svn客户端,则需安装“TortoiseSVN”.“Puttygen”和“Pageant” 9.1.下载 ...
- Hold住:坚持的智慧
这类励志的书读完时,感觉很激励人,可读完后总觉得空空的.同样这本书读完后没特别的感觉(也许书中的思想已影响了我,只是目前还说不太清楚),只感觉有些句子很有感觉,做个汇总: 1. 荀子有言:“ ...