iOS开发——网络编程Swift篇&(六)异步Post方式
异步Post方式
// MARK: - 异步Post方式 func asynchronousPost() { //创建NSURL对象 var url:NSURL! = NSURL(string: "http://m.weather.com.cn/data/101010100.html") //创建请求对象 var request : NSMutableURLRequest = NSMutableURLRequest(URL: url, cachePolicy: NSURLRequestCachePolicy.UseProtocolCachePolicy, timeoutInterval: ) request.HTTPMethod = "POST"//设置请求方式为POST,默认为GET var str:String = "type=focus-c";//设置参数 var data:NSData = str.dataUsingEncoding(NSUTF8StringEncoding, allowLossyConversion: true)! request.HTTPBody = data; //连接服务器 var connection = NSURLConnection(request: request, delegate: self) } // MARK: - NSURLConnectionDataDelegate func connection(connection: NSURLConnection, willSendRequest request: NSURLRequest, redirectResponse response: NSURLResponse?) -> NSURLRequest? { //将要发送请求 return request } func connection(connection: NSURLConnection, didReceiveResponse response: NSURLResponse) { //接收响应 } var jsonData:NSMutableData = NSMutableData() func connection(connection: NSURLConnection, didReceiveData data: NSData) { //收到数据 self.jsonData.appendData(data) } func connection(connection: NSURLConnection, needNewBodyStream request: NSURLRequest) -> NSInputStream? { //需要新的内容流 return request.HTTPBodyStream } func connection(connection: NSURLConnection, didSendBodyData bytesWritten: Int, totalBytesWritten: Int, totalBytesExpectedToWrite: Int) { //发送数据请求 } func connection(connection: NSURLConnection, willCacheResponse cachedResponse: NSCachedURLResponse) -> NSCachedURLResponse? { //缓存响应 return cachedResponse } func connectionDidFinishLoading(connection: NSURLConnection) { //请求结束 var jsonString = NSString(data: self.jsonData, encoding: NSUTF8StringEncoding) println(jsonString) let dict:AnyObject? = NSJSONSerialization.JSONObjectWithData(self.jsonData, options: NSJSONReadingOptions.AllowFragments, error: nil) //已下代码 重新修订 // var dic = dict as NSDictionary // // let weatherinfoDic = dic.objectForKey("weatherinfo") as? NSDictionary // let city = weatherinfoDic?.objectForKey("city") as? String // let date_y = weatherinfoDic?.objectForKey("date_y") as? String // let temp1 = weatherinfoDic?.objectForKey("temp1") as? String // // let alert = UIAlertView(title: (city! + date_y!), message: temp1!, delegate: nil, cancelButtonTitle: "确定") // alert.show() //2015年4月10号修改 if var dic = dict as? NSDictionary { let weatherinfoDic = dic.objectForKey("weatherinfo") as? NSDictionary let city = weatherinfoDic?.objectForKey("city") as? String let date_y = weatherinfoDic?.objectForKey("date_y") as? String let temp1 = weatherinfoDic?.objectForKey("temp1") as? String let alert = UIAlertView(title: (city! + date_y!), message: temp1!, delegate: nil, cancelButtonTitle: "确定") alert.show() } }
iOS开发——网络编程Swift篇&(六)异步Post方式的更多相关文章
- iOS开发——网络编程Swift篇&(四)异步Get方式
异步Get方式 // MARK: - 异步Get方式 func asynchronousGet() { //创建NSURL对象 var url:NSURL! = NSURL(string: " ...
- iOS开发——网络编程Swift篇&Alamofire详解
Alamofire详解 预览图 Swift Alamofire 简介 Alamofire是 Swift 语言的 HTTP 网络开发工具包,相当于Swift实现AFNetworking版本. 当然,AF ...
- iOS开发——网络编程Swift篇&(八)SwiftyJSON详解
SwiftyJSON详解 最近看了一些网络请求的例子,发现Swift在解析JSON数据时特别别扭,总是要写一大堆的downcast(as?)和可选(Optional),看?号都看花了.随后发现了这个库 ...
- iOS开发——网络编程Swift篇&(二)同/异&步请求
同/异&步请求 同步: // MARK: - 同步请求 func httpSynchronousRequest() { //创建NSURL对象 var url:NSURL! = NSURL(s ...
- iOS开发——网络编程Swift篇&(七)NSURLSession详解
NSURLSession详解 // MARK: - /* 使用NSURLSessionDataTask加载数据 */ func sessionLoadData() { //创建NSURL对象 var ...
- iOS开发——网络编程Swift篇&(一)网络监测
网络监测 enum ReachabilityType { case WWAN, WiFi, NotConnected } public class Reachability { /** :see: O ...
- iOS开发——网络编程Swift篇&(五)同步Post方式
同步Post方式 // MARK: - 同步Post方式 func synchronousPost() { //创建NSURL对象 var url:NSURL! = NSURL(string: &qu ...
- iOS开发——网络编程Swift篇&(三)同步Get方式
同步Get方式 // MARK: - 同步Get方式 func synchronousGet() { //创建NSURL对象 var url:NSURL! = NSURL(string: " ...
- iOS开发——网络编程OC篇&Socket编程
Socket编程 一.网络各个协议:TCP/IP.SOCKET.HTTP等 网络七层由下往上分别为物理层.数据链路层.网络层.传输层.会话层.表示层和应用层. 其中物理层.数据链路层和网络层通常被称作 ...
随机推荐
- Win10遇上Kindle就蓝屏
在使用 Kindle 连接 Win10 时会出现蓝屏现象,现在,微软承认 Windows 10 插入 Kindle 导致蓝屏问题,并表示目前正着手制作补丁.微软表示:“我们承认确实存在当Kindle ...
- Reading or Writing to Another Processes Memory in C# z
http://www.jarloo.com/reading-and-writing-to-memory/ Declarations [Flags] public enum ProcessAccessF ...
- webdriver(python)学习笔记四——定位一组元素
webdriver可以很方便的使用find_element方法来定位某个特定的对象,不过有时候我们却需要定位一组对象,这时候就需要使用find_elements方法. 定位一组对象一般用于以下场景: ...
- 【剑指offer 面试题22】栈的压入、弹出序列
思路: 不停地压栈,直到栈头元素与弹出序列的首元素相等则出栈,同时弹出序列后移:若不相等则一直保持压栈,直到压入所有元素后弹出序列仍不为空,则说明无法匹配. C++: #include <ios ...
- htmlcss笔记--标签默认值样式重置css reset(2)
1.内联,内嵌,行内元素: 默认可以继续跟同类型标签显示: 由内容撑开宽度,内容多宽,会有多宽: span,内嵌标签部支持宽高,即使加了宽高也不支持, 也不支持上下内外边距,但是支持左右内外边距:内上 ...
- HDU5727 Necklace
http://acm.hdu.edu.cn/showproblem.php?pid=5727 题意:n个珠子,每个珠子有阴阳两种属性,且阴的一定和阳的紧邻,排成一个环:m行,每行两个数,表示阳性x珠子 ...
- CentOS下编译安装hping3
安装hping之前,先装上libpcap-dev和tcl-dev 1.获取源码包 wget http://www.hping.org/hping3-20051105.tar.gz 2.解压,得到 hp ...
- ASP.NET MVC3 系列教程 - Razor视图引擎基础语法
http://www.cnblogs.com/highend/archive/2011/04/09/aspnet_mvc3_razor_engine.html 4. 关于所有带"_" ...
- 转】Nginx+tomcat配置集群负载均衡
原博文出自于:http://blog.csdn.net/bruce_6/article/details/38228299 感谢! 相信很多人都听过nginx,这个小巧的东西慢慢地在吞食 ...
- URAL 2040 Palindromes and Super Abilities 2 (回文自动机)
Palindromes and Super Abilities 2 题目链接: http://acm.hust.edu.cn/vjudge/contest/126823#problem/E Descr ...