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格式 ...
随机推荐
- 转载: Vim 练级攻略
转自:http://coolshell.cn/articles/5426.html 酷壳 vim的学习曲线相当的大(参看各种文本编辑器的学习曲线),所以,如果你一开始看到的是一大堆VIM的命令分类, ...
- HDU 4911 Inversion
http://acm.hdu.edu.cn/showproblem.php?pid=4911 归并排序求逆对数. Inversion Time Limit: 2000/1000 MS (Java/ ...
- bjfu1100 圆环
这题也是2011百度之星的一道题.知道做法后代码极简单. 不过我做完后随便上网搜了一下,发现竟然还有很多不同的做法.别的做法我就不管了,我只把我的做法的原理说清楚.我做题时是按如下顺序逐步找到规律的: ...
- Android自带CalendarView类实现日历视图
文章由来:学习一下日历控件的实现,Android3.0以下的版本请查阅其他文章. 本文主要是介绍Android日历视图控件CalendarView相关的内容,然后在后面会给出一个简单的Demo. Ca ...
- 使用 gradle 编译多版本 android 应用
最近要做一个 android 产品的变种版本,需要编出不同版本,每个版本有不同的包名.图标等等,和一些特有的逻辑. 很久之前做过类似的工作,当时没有 gradle, 用的方法是把公共代码抽成一个 li ...
- C/C++:类模板
类模板就是为类声明一种模板,使得类中的某些数据成员,或某些成员函数的参数,又或者是某些成员函数的返回值可以取任意的数据类型,包括基本数据类型和自定义数据类型. 类模板的声明形式如下: template ...
- Codeforces Round #363 (Div. 1) C. LRU
题意: n个数,长度为k的缓存,每次询问,每个数以pi的概率被选,如果不在缓存区则加入,如果缓存区满了,则第一个进缓存的出来,问10^100次询问以后每个数在缓存的概率 思路: 状压DP,看了hzwe ...
- PyBayes的安装和使用
PyBayes 主页 文档 PyBayes is an object-oriented Python library for recursive Bayesian estimation (Bayesi ...
- Spark SQL概念学习系列之为什么使用 Spark SQL?(二)
简单地说,Shark 的下一代技术 是Spark SQL. 由于 Shark 底层依赖于 Hive,这个架构的优势是对传统 Hive 用户可以将 Shark 无缝集成进现有系统运行查询负载. 但是也看 ...
- homework 08_2 C++11新特性作业之二
---恢复内容开始--- 1.使用Lambda表达式计算“hello world!”中字母e和i的数量 下面是代码: #include "stdafx.h" #include< ...