/**

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

在今后的开发中,如果使用简单的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. 基于 Web 的 Go 语言 IDE - Wide 1.1.0 发布!

    发布 1.1.0 这个版本改进了很多细节,已经完全可以用于正式项目的开发 同时我们上线了 Wide 在线服务 到目前,我们提供了 Wide 和 Solo 两个在线服务,详情请看这里. Wide 是什么 ...

  2. cf1089d Distance Sum

    题目大意 给一个有n个点,m条边的无向连通图,求所有点两两之间的最短路.$(2<=n<=10^5;n-1<=m<=n+42)$ solution 我们注意到$m-n+1$很小. ...

  3. 03003_MySQL

    1.之前已经进行过MySQL的安装,参考03002_MySql数据库的安装和配置 : 2.登录MySQL数据库 (1)启动mysql服务:net start mysql   : (2)MySQL是一个 ...

  4. FileChannel的深入理解

    一,官方描写叙述 一个读,写,映射,操作文件的通道. 文件通道有能够被查询和改动的一个当前位置.文件本身包括了一个可悲读写的变长字节序列,而且它的当前的size会被查询.当被写入的字节超过当前文件的大 ...

  5. POJ 1442 Black Box treap求区间第k大

    题目来源:POJ 1442 Black Box 题意:输入xi 输出前xi个数的第i大的数 思路:试了下自己的treap模版 #include <cstdio> #include < ...

  6. 经验之谈—让你看明确block

    事实上我感觉不常常使用block的朋友.对block应该是比較陌生的,那么如今我们来扒开block的真面目,看看block的本质 普通的局部变量.block内部仅仅会引用它初始的值(block定义那一 ...

  7. 1.java soap api操作和发送soap消息

    转自:https://blog.csdn.net/lbinzhang/article/details/84721359 1. /** * soap请求 * * @return * @throws Ex ...

  8. Spark MLlib架构解析(含分类算法、回归算法、聚类算法和协同过滤)

    Spark MLlib架构解析 MLlib的底层基础解析 MLlib的算法库分析 分类算法 回归算法 聚类算法 协同过滤 MLlib的实用程序分析 从架构图可以看出MLlib主要包含三个部分: 底层基 ...

  9. 玲珑杯 Round 19 A simple math problem

    Time Limit:2s Memory Limit:128MByte Submissions:1599Solved:270 DESCRIPTION You have a sequence anan, ...

  10. python处理文件

    打开文件:     open是内建函数,一个方法 open("test.txt","r",buffering=1) test.txt 表示被打开的文件名,如果不 ...