异步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方式的更多相关文章

  1. iOS开发——网络编程Swift篇&(四)异步Get方式

    异步Get方式 // MARK: - 异步Get方式 func asynchronousGet() { //创建NSURL对象 var url:NSURL! = NSURL(string: " ...

  2. iOS开发——网络编程Swift篇&Alamofire详解

    Alamofire详解 预览图 Swift Alamofire 简介 Alamofire是 Swift 语言的 HTTP 网络开发工具包,相当于Swift实现AFNetworking版本. 当然,AF ...

  3. iOS开发——网络编程Swift篇&(八)SwiftyJSON详解

    SwiftyJSON详解 最近看了一些网络请求的例子,发现Swift在解析JSON数据时特别别扭,总是要写一大堆的downcast(as?)和可选(Optional),看?号都看花了.随后发现了这个库 ...

  4. iOS开发——网络编程Swift篇&(二)同/异&步请求

    同/异&步请求 同步: // MARK: - 同步请求 func httpSynchronousRequest() { //创建NSURL对象 var url:NSURL! = NSURL(s ...

  5. iOS开发——网络编程Swift篇&(七)NSURLSession详解

    NSURLSession详解 // MARK: - /* 使用NSURLSessionDataTask加载数据 */ func sessionLoadData() { //创建NSURL对象 var ...

  6. iOS开发——网络编程Swift篇&(一)网络监测

    网络监测 enum ReachabilityType { case WWAN, WiFi, NotConnected } public class Reachability { /** :see: O ...

  7. iOS开发——网络编程Swift篇&(五)同步Post方式

    同步Post方式 // MARK: - 同步Post方式 func synchronousPost() { //创建NSURL对象 var url:NSURL! = NSURL(string: &qu ...

  8. iOS开发——网络编程Swift篇&(三)同步Get方式

    同步Get方式 // MARK: - 同步Get方式 func synchronousGet() { //创建NSURL对象 var url:NSURL! = NSURL(string: " ...

  9. iOS开发——网络编程OC篇&Socket编程

    Socket编程 一.网络各个协议:TCP/IP.SOCKET.HTTP等 网络七层由下往上分别为物理层.数据链路层.网络层.传输层.会话层.表示层和应用层. 其中物理层.数据链路层和网络层通常被称作 ...

随机推荐

  1. SeleniumIDE与eclipse如何连接使用

    [秦菲]SeleniumIDE与eclipse如何连接使用 1. 打开Firefox,利用IDE录制脚本(依次点击浏览器界面:工具->Selenium IDE)2. 把录制好的脚本转换成其他语言 ...

  2. 【算法与数据结构】字符串匹配之KMP算法

    // KMP.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include <iostream> #include < ...

  3. Spring 中context.start作用

    我们经常会看到 如下代码 ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext(configPath. ...

  4. CTS FAIL(一)

    首先简单介绍下CTS:全称Compatibility Test Suite,通过CTS测试,来检测android apk与android系统的兼容性. 最近公司release一版新的Image,但在新 ...

  5. hadoop HDFS 写入吞吐量

    最近一个项目 在大把大把的使用hadoop-HDFS,关于HDFS 的优势网上都快说烂了,这里不再说了,免得被.. 呵呵 废话少说,开整 1.场景描述: 服务器A 监听 服务器B分发任务socket. ...

  6. Zookeeper实现分布式选举算法

    分布式系统中经常采用Master/Slave架构.(截止到目前为止我还没有碰到过其他架构...)这种架构中如果Master发生故障就会导致整个集群停止服务,为了提高系统的高可用性通常采用选举算法来选出 ...

  7. 【转】Maven实战(一)---Maven Build--缺少Jar包

    原博文出于: http://blog.csdn.net/liutengteng130/article/details/41426955   感谢! 新建的Maven项目,在build的时候总是打包失败 ...

  8. cocos2d-x 3.0 创建工程的模板

    将下面的代码拷贝到文本文件中,重命名文件为 cocos3.0创建工程.bat @echo off echo -------------------------create project with p ...

  9. POJ 1664 放苹果 (递推)

    题目链接:http://poj.org/problem?id=1664 dp[i][j]表示i个盘放j个苹果的方案数,dp[i][j] 可以由 dp[i - 1][j] 和 dp[i][j - i] ...

  10. Http Header Content-Disposition

    Content-Disposition用途 Content-Disposition是为了实现服务器下载文件功能,并可提供文件名. Content-Disposition格式 content-dispo ...