/**

所有网络请求,统一使用异步请求!

在今后的开发中,如果使用简单的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 请求的更多相关文章

  1. swift开发网络篇—NSURLConnection基本使用

    iOS开发网络篇—NSURLConnection基本使用 一.NSURLConnection的常用类 (1)NSURL:请求地址 (2)NSURLRequest:封装一个请求,保存发给服务器的全部数据 ...

  2. swift开发网络篇—利用NSURLSession 发送GET和POST请求

    说明:本文示例代码发送的请求均为http请求,需要对info.plist文件进行配置.如何配置,请参考https://github.com/HanGangAndHanMeimei/iOS9Adapta ...

  3. swift开发网络篇—利用NSURLConnection GET请求和POST请求

    一.GET请求和POST请求简单说明 @IBOutlet weakvar userName:UITextField! @IBOutletweakvar userPwd:UITextField! @IB ...

  4. swift开发网络篇 - 网络基础

    GET & POST GET GET的语义是获取指定URL的资源 将数据按照variable=value的形式,添加到action所指向的URL后面,并且两者使用"?"连接 ...

  5. swift开发网络篇 - 用户登录POST JSON and header

    版权声明:本文为博主原创文章,未经博主允许不得转载. import UIKit import Alamofire class ViewController: UIViewController { va ...

  6. iOS开发网络篇—GET请求和POST请求

    iOS开发网络篇—GET请求和POST请求 一.GET请求和POST请求简单说明 创建GET请求 // 1.设置请求路径 NSString *urlStr=[NSString stringWithFo ...

  7. iOS开发网络篇—发送GET和POST请求(使用NSURLSession)

    iOS开发网络篇—发送GET和POST请求(使用NSURLSession) 说明: 1)该文主要介绍如何使用NSURLSession来发送GET请求和POST请求 2)本文将不再讲解NSURLConn ...

  8. iOS开发网络篇—网络请求(HTTP协议)小结

    iOS开发网络篇—网络请求(HTTP协议)小结 iOS开发网络篇—网络请求(HTTP协议)小结 1. 聊一下HTTP协议(协议的完整的通信过程) 2.通信过程 1> 请求 * 客户端 --> ...

  9. iOS开发网络篇—数据缓存

      iOS开发网络篇—数据缓存 一.关于同一个URL的多次请求 有时候,对同一个URL请求多次,返回的数据可能都是一样的,比如服务器上的某张图片,无论下载多少次,返回的数据都是一样的. 上面的情况会造 ...

随机推荐

  1. Enity Framework已经是.NET下最主要的ORM了

    Enity Framework已经是.NET下最主要的ORM了.而ORM从一个Mapping的概念开始,到现在已经得到了一定的升华,特别是EF等对ORM框架面向对象能力的升华.切实地说,就是ORM让数 ...

  2. PCA and Whitening on natural images

    Step 0: Prepare data Step 0a: Load data The starter code contains code to load a set of natural imag ...

  3. OpenCV —— HighGUI

    分为:硬件相关部分,文件部分以及图形用户接口部分 创建窗口 —— cvNamedWindow 若设置成 CV_WINDOW_AUTOSIZE 窗口大小会随着图像的载入而根据图像大小调整,用户没办法手动 ...

  4. HDU 2689 Tree

    Tree Time Limit: 6000/2000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submis ...

  5. mysql判断一个字符串是否包含某子串 【转】

    文章出处:mysql判断一个字符串是否包含某子串 使用locate(substr,str)函数,如果包含,返回>0的数,否则返回0 例子:判断site表中的url是否包含'http://'子串, ...

  6. 几个不错的开源的.net界面控件

    转自原文 几个不错的开源的.net界面控件 (转) 几个不错的开源的.net界面控件 - zt 介绍几个自己觉得不错的几个开源的.net界面控件,不知道是否有人介绍过. DockPanel Suite ...

  7. worktools-mmx 添加编译模块

    1,添加模块到mmx.py文件 1>vim /home/zhangshuli/git/vanzo_team/xulei/mmx.py 2>按照格式"Gallery2": ...

  8. Flume的可管理性

    Flume的可管理性  所有agent和Collector由master统一管理,这使得系统便于维护. 多master情况,Flume利用 ZooKeeper和gossip,保证动态配置数据的一致性. ...

  9. STS清理

    图中插入代码如下,文件名随意最好见名知意 Add 'this' qualifier to unqualified field accesses Add 'this' qualifier to unqu ...

  10. Echarts Y轴min显示奇葩问题(做此记录)

    项目需求是根据不同情况显示最大值最小值   有9-35  12-50 9-50 三种情况 前面两种可以显示出来  但是9-50的话  最小值9显示不出来  8,7等就可以显示出来 后面想到强制从最小值 ...