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)
}
}
}
}
swift开发网络篇 - post 请求的更多相关文章
- swift开发网络篇—NSURLConnection基本使用
iOS开发网络篇—NSURLConnection基本使用 一.NSURLConnection的常用类 (1)NSURL:请求地址 (2)NSURLRequest:封装一个请求,保存发给服务器的全部数据 ...
- swift开发网络篇—利用NSURLSession 发送GET和POST请求
说明:本文示例代码发送的请求均为http请求,需要对info.plist文件进行配置.如何配置,请参考https://github.com/HanGangAndHanMeimei/iOS9Adapta ...
- swift开发网络篇—利用NSURLConnection GET请求和POST请求
一.GET请求和POST请求简单说明 @IBOutlet weakvar userName:UITextField! @IBOutletweakvar userPwd:UITextField! @IB ...
- swift开发网络篇 - 网络基础
GET & POST GET GET的语义是获取指定URL的资源 将数据按照variable=value的形式,添加到action所指向的URL后面,并且两者使用"?"连接 ...
- swift开发网络篇 - 用户登录POST JSON and header
版权声明:本文为博主原创文章,未经博主允许不得转载. import UIKit import Alamofire class ViewController: UIViewController { va ...
- iOS开发网络篇—GET请求和POST请求
iOS开发网络篇—GET请求和POST请求 一.GET请求和POST请求简单说明 创建GET请求 // 1.设置请求路径 NSString *urlStr=[NSString stringWithFo ...
- iOS开发网络篇—发送GET和POST请求(使用NSURLSession)
iOS开发网络篇—发送GET和POST请求(使用NSURLSession) 说明: 1)该文主要介绍如何使用NSURLSession来发送GET请求和POST请求 2)本文将不再讲解NSURLConn ...
- iOS开发网络篇—网络请求(HTTP协议)小结
iOS开发网络篇—网络请求(HTTP协议)小结 iOS开发网络篇—网络请求(HTTP协议)小结 1. 聊一下HTTP协议(协议的完整的通信过程) 2.通信过程 1> 请求 * 客户端 --> ...
- iOS开发网络篇—数据缓存
iOS开发网络篇—数据缓存 一.关于同一个URL的多次请求 有时候,对同一个URL请求多次,返回的数据可能都是一样的,比如服务器上的某张图片,无论下载多少次,返回的数据都是一样的. 上面的情况会造 ...
随机推荐
- 图片的title属性和alt属性的区别
在前端开发中,经常遇到有人在问图片的alt属性和title属性的区别,这是因为很多人对于alt属性和title属性没有彻底搞明白,今天零度给大家分析分析. title属性 首先,来看一下什么是titl ...
- BootStrap_table.js 学习
@{ Layout = null; ViewBag.Title = "基于BootstrapTable的简单应用";} <!--添加相关样式引用--><link ...
- spark源码阅读
根据spark2.2的编译顺序来确定源码阅读顺序,只阅读核心的基本部分. 1.common目录 ①Tags②Sketch③Networking④Shuffle Streaming Service⑤Un ...
- IFC数据模式架构的四个概念层
IFC模型体系结构由四个层次构成, 从下到上依次是 资源层(Resource Layer).核心层(Core Layer).交互层(Interoperability Layer).领域层(Domain ...
- TextView- 内容过长省略号设定
<LinearLayout android:layout_width="fill_parent" android:layout_height="wrap_conte ...
- Qt之界面换肤
简述 常用的软件基本都有换肤功能,例如:QQ.360.迅雷等.换肤其实很简单,并没有想象中那么难,利用前面分享过的QSS系列文章,沃我们完全可以实现各种样式的定制! 简述 实现原理 效果 新建QSS文 ...
- Ajax : load()
<body> <input type="button" value="Ajax" /> <div id="box&quo ...
- Spider_selenium
json模块 什么是json? javascript中的对象和数组 对象:{key:value}取值:对象名.key 数组:[...,...]取值:数组[索引值] 作用 json格式的字符串和Pyth ...
- javaScript实现选中文字提示新浪微博分享的效果
<!DOCTYPE html> <html xmlns:wb="http://open.weibo.com/wb"> <head> <me ...
- cv2.putText 文字换行('\n')无法解析换行
OpenCV putText() new line character cv2.putText 在向图像中添加文本信息时,如果在待添加的文本中含有换行转义符,一般它是无法正确处理的: cv2.putT ...