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 2473 Junk-Mail Filter(并查集_虚节点)2008 Asia Regional Hangzhou
感觉有些难的题,刚开始就想到了设立虚节点,但是实现总是出错,因为每次设立了虚节点之后,无法将原节点和虚节点分开,导致虚节点根本无意义. 以上纯属废话,可以忽略…… 题意—— 给定n个点(0, 1, 2 ...
- JUC之Atomic系列12大类实例讲解和原理分解
在java6以后我们不但接触到了Lock相关的锁,也接触到了很多更加乐观的原子修改操作,也就是在修改时我们只需要保证它的那个瞬间是安全的即可,经过相应的包装后可以再处理对象的并发修改,以及并发中的AB ...
- Delphi RichEx 图像
unit RichEx; {2005-03-04 LiChengbinAdded:Insert bitmap or gif into RichEdit controls from source fil ...
- jenkins 命令行 CLI jenkins-cli.jar
部署好jenkins后,一般都是通过jenkins提供的web界面来操作jenkins. 而有些场景则需要通过命令来操作jenkins,例如通过脚本操作jenkins. 在jenkins提供的web界 ...
- 在DataTable 中增加一列
//在这里需要增加一个列. DataColumn column = dt.Columns.Add("行号", Type.GetType("S ...
- DataTable转List<Model>通用类【实体转换辅助类】
/// <summary> /// DataTable转List<Model>通用类[实体转换辅助类] /// </summary> public class Mo ...
- <转>详解DNS的常用记录(上):DNS系列之二
详解DNS的常用记录(上) 在上篇博文中,我们介绍了DNS服务器的体系结构,从中我们了解到如果我们希望注册一个域名,那么必须经过顶级域名服务器或其下级的域名服务器为我们申请的域名进行委派,把解析权委派 ...
- flex 图片旋转(解决公转和自转问题)
在Flex中图片的旋转是既有公转和自转的.这样在图片旋转的时候就有一定小麻烦: 为了更好地说明问题,先引入两个概念:“自转”和“公转”.想象一下,地球在绕着太阳公转的同时,它自己也在自转.Flash应 ...
- ORA-12162: TNS:net service name is incorrectly specified
今天在进行修改oracle_sid环境变量的时候,将相关的环境变量值去掉,从而不能进入sqlplus,报错如下: [oracle@kel ~]$ sqlplus / as sysdba SQL*Plu ...
- HDU5807 Keep In Touch DP
// HDU5807 Keep In Touch DP // 思路:直接暴力是O(n^6).所以要优化一下 // dp[i][j][k][0]:当前点i j k的方案数 // dp[i][j][k][ ...