swift开发网络篇 - post 请求
/**
所有网络请求,统一使用异步请求!
在今后的开发中,如果使用简单的get/head请求,可以用NSURLConnction异步方法
GET查/POST增/PUT改/DELETE删/HEAD
GET
1> URL
2> NSURLRequest
3> NSURLConnction 异步
POST
1> URL
2> NSMutableURLRequest
.httpMethod = @"POST";
str 从 firebug直接粘贴,或者自己写
变量名1=数值1&变量名2=数值2
.httpData = [str dataUsingEncoding:NSUTF8StringEncoding];
3> NSURLConnction 异步
*/
overridefunc viewDidLoad() {
super.viewDidLoad()
self.postLogon()
}
func postLogon(){
var path ="http://xxxxxxxx.com"
var params:NSMutableDictionary = NSMutableDictionary()
params["mobile_phone"] ="1xxxxxxxxx5"
params["password"] ="123456"
var headparams:NSMutableDictionary = NSMutableDictionary()
headparams["X-xxxx-App-Token"] = "xxxxxx-xxx-xxxx-xxxx-xxxxxxxxxx"
// 1. URL
var url:NSURL = NSURL(string: path)!
// 2. 请求(可以改的请求)
var request:NSMutableURLRequest = NSMutableURLRequest(URL: url)
// ? POST
// 默认就是GET请求
request.HTTPMethod ="POST"
// ? 数据体
var jsonData:NSData? =nil
do {
jsonData = tryNSJSONSerialization.dataWithJSONObject(params, options:NSJSONWritingOptions.PrettyPrinted)
} catch {
}
// 将字符串转换成数据
request.HTTPBody = jsonData
request.setValue("xxxxxx-xxx-xxxx-xxxx-xxxxxxxxxx", forHTTPHeaderField:"X-xxxx-App-Token")
NSURLConnection.sendAsynchronousRequest(request, queue:NSOperationQueue()) { (res, data, error)in
let str =NSString(data: data!, encoding:NSUTF8StringEncoding)
print(str)
}
}
//#pragma mark - POST登录
func posttoken()
{
var path ="http://xxxxxxxxx/app/token/request_token"
let params:NSMutableDictionary = NSMutableDictionary()
params["app_id"] = "000000000000000000000"
params["app_secret"] ="000000000000000000000"
params["mobile_id"] ="000000000000000000000"
// 1. URL
var url:NSURL = NSURL(string: path)!
// 2. 请求(可以改的请求)
var request:NSMutableURLRequest = NSMutableURLRequest(URL: url)
// ? POST
// 默认就是GET请求
request.HTTPMethod ="POST"
// ? 数据体
var jsonData:NSData? =nil
do {
jsonData = tryNSJSONSerialization.dataWithJSONObject(params, options:NSJSONWritingOptions.PrettyPrinted)
} catch {
}
// 将字符串转换成数据
request.HTTPBody = jsonData
// 3. 连接,异步
NSURLConnection.sendAsynchronousRequest(request, queue:NSOperationQueue()) { (res, data, error)in
if(error ==nil){
var dict:NSDictionary? =nil
do {
dict = try NSJSONSerialization.JSONObjectWithData(data!, options:NSJSONReadingOptions.init(rawValue:0)) as!NSDictionary
} catch {
}
//将str转换为字典
//{"data":
//{"token":"2e2f6b61-8101-49cf-b7dd-7cfea6f0c499","expire_at":1462885914}
// }
//取data的值
var data:NSDictionary = dict!["data"] as! NSDictionary
//取token的值
var token = data["token"]as! String
print(token)
}
}
}
}
最新文章
- 聊聊 C 语言中的 sizeof 运算
- PHP面向对象07_PDO
- form中动态生成Radiobutton控件
- Linux 打通ssh无密码登录
- [NOIP2011] 计算系数(二项式定理)
- SQL Server 数据库中关于死锁的分析
- Android工程目录及其作用简介
- IOS 多线程之GCD
- 转:SRIO错误侦测和管理机制
- OC中Foundation框架之NSDictionary、NSMutableDictionary
- HDU1018-Big Number
- centos7下安装docker(13.4容器volume总结)
- [蓝桥] 历届试题 错误票据 (List用法,空格处理)
- [转载]Getting Started with ASP.NET vNext and Visual Studio 14
- 【Eclipse】开发专题
- C# Graphics中有关绘图质量的几个Mode
- 【转】.net MVC 生命周期
- lintcode-39-恢复旋转排序数组
- smartcar 系列机器人学习笔记1
- mybatis异常:Could not find result map ......... 问题分析及解决
热门文章
- Android NDK调试出错Unknown Application ABI, Unable to detect application ABI&;#39;s的解决方式
- Leetcode47: Palindrome Linked List
- ubuntu网络重启后或主机重启后,/etc/resolv.conf恢复原样的解决办法
- 华为畅玩5 (CUN-AL00) 刷入第三方twrp Recovery 及 root
- java中goto语句
- C#异步编程的实现方式(4)——Task任务
- JXNU 新生选拔赛
- ftp实现图片上传,文件也类似
- BZOJ3998: [TJOI2015]弦论(后缀自动机,Parent树)
- Python 极简教程(一)前言