iOS开发——网络编程Swift篇&(六)异步Post方式

异步Post方式

 1      // MARK: - 异步Post方式
 2     func asynchronousPost()
 3     {
 4         //创建NSURL对象
 5         var url:NSURL! = NSURL(string: "http://m.weather.com.cn/data/101010100.html")
 6
 7         //创建请求对象
 8         var request : NSMutableURLRequest = NSMutableURLRequest(URL: url, cachePolicy: NSURLRequestCachePolicy.UseProtocolCachePolicy, timeoutInterval: 10)
 9
10         request.HTTPMethod = "POST"//设置请求方式为POST,默认为GET
11
12         var str:String = "type=focus-c";//设置参数
13         var data:NSData = str.dataUsingEncoding(NSUTF8StringEncoding, allowLossyConversion: true)!
14         request.HTTPBody = data;
15
16         //连接服务器
17         var connection = NSURLConnection(request: request, delegate: self)
18     }
19
20
21
22     // MARK: - NSURLConnectionDataDelegate
23     func connection(connection: NSURLConnection, willSendRequest request: NSURLRequest, redirectResponse response: NSURLResponse?) -> NSURLRequest?
24     {
25         //将要发送请求
26         return request
27     }
28
29     func connection(connection: NSURLConnection, didReceiveResponse response: NSURLResponse)
30     {
31         //接收响应
32     }
33
34
35     var jsonData:NSMutableData =  NSMutableData()
36     func connection(connection: NSURLConnection, didReceiveData data: NSData)
37     {
38         //收到数据
39         self.jsonData.appendData(data)
40     }
41
42     func connection(connection: NSURLConnection, needNewBodyStream request: NSURLRequest) -> NSInputStream?
43     {
44         //需要新的内容流
45         return request.HTTPBodyStream
46     }
47
48     func connection(connection: NSURLConnection, didSendBodyData bytesWritten: Int, totalBytesWritten: Int, totalBytesExpectedToWrite: Int)
49     {
50         //发送数据请求
51     }
52
53     func connection(connection: NSURLConnection, willCacheResponse cachedResponse: NSCachedURLResponse) -> NSCachedURLResponse?
54     {
55         //缓存响应
56         return cachedResponse
57     }
58
59     func connectionDidFinishLoading(connection: NSURLConnection)
60     {
61         //请求结束
62
63         var jsonString = NSString(data: self.jsonData, encoding: NSUTF8StringEncoding)
64
65         println(jsonString)
66
67
68         let dict:AnyObject? = NSJSONSerialization.JSONObjectWithData(self.jsonData, options: NSJSONReadingOptions.AllowFragments, error: nil)
69
70
71         //已下代码 重新修订
72 //        var dic = dict as NSDictionary
73 //
74 //        let weatherinfoDic = dic.objectForKey("weatherinfo") as? NSDictionary
75 //        let city = weatherinfoDic?.objectForKey("city") as? String
76 //        let date_y = weatherinfoDic?.objectForKey("date_y") as? String
77 //        let temp1 = weatherinfoDic?.objectForKey("temp1") as? String
78 //
79 //        let alert = UIAlertView(title: (city! + date_y!), message: temp1!, delegate: nil, cancelButtonTitle: "确定")
80 //        alert.show()
81
82
83         //2015年4月10号修改
84         if var dic = dict as? NSDictionary
85         {
86             let weatherinfoDic = dic.objectForKey("weatherinfo") as? NSDictionary
87             let city = weatherinfoDic?.objectForKey("city") as? String
88             let date_y = weatherinfoDic?.objectForKey("date_y") as? String
89             let temp1 = weatherinfoDic?.objectForKey("temp1") as? String
90
91             let alert = UIAlertView(title: (city! + date_y!), message: temp1!, delegate: nil, cancelButtonTitle: "确定")
92             alert.show()
93         }
94     }
95     
时间: 2024-10-12 20:36:26

iOS开发——网络编程Swift篇&(六)异步Post方式的相关文章

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

异步Get方式 1 // MARK: - 异步Get方式 2 func asynchronousGet() 3 { 4 //创建NSURL对象 5 var url:NSURL! = NSURL(string: "http://m.weather.com.cn/data/101010100.html") 6 7 //创建请求对象 8 var urlRequest : NSURLRequest = NSURLRequest(URL: url, cachePolicy: NSURLReque

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

Alamofire详解 预览图 Swift Alamofire 简介 Alamofire是 Swift 语言的 HTTP 网络开发工具包,相当于Swift实现AFNetworking版本. 当然,AFNetworking非常稳定,在Mac OSX与iOS中也能像其他Objective-C代码一样用Swift编写.不过Alamofire更适合Swift语言风格习惯(Alamofire与AFNetworking可以共存一个项目中,互不影响). Alamofire 取名来源于Alamo Fire fl

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

SwiftyJSON详解 最近看了一些网络请求的例子,发现Swift在解析JSON数据时特别别扭,总是要写一大堆的downcast(as?)和可选(Optional),看?号都看花了.随后发现了这个库SwiftyJSON,问题迎刃而解,灰常优雅和Swifty! 简单介绍下这个库(内容译自SwiftyJSON的README): 为什么典型的在Swift中处理JSON的方法不好? Swift语言是一种严格的类型安全语言,它要求我们显示的设置类型,并帮助我们写出更少bug的代码.但是当处理JSON这种

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

同/异&步请求 同步: 1 // MARK: - 同步请求 2 func httpSynchronousRequest() 3 { 4 //创建NSURL对象 5 var url:NSURL! = NSURL(string: "http://m.weather.com.cn/data/101010100.html") 6 7 //创建请求对象 8 var urlRequest : NSURLRequest = NSURLRequest(URL: url) 9 10 //响应对象

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

NSURLSession详解 1 // MARK: - /* 使用NSURLSessionDataTask加载数据 */ 2 func sessionLoadData() 3 { 4 //创建NSURL对象 5 var url:NSURL! = NSURL(string: "http://m.weather.com.cn/data/101010100.html") 6 7 //创建请求对象 8 var request : NSURLRequest = NSURLRequest(URL:

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

网络监测 1 enum ReachabilityType { 2 case WWAN, 3 WiFi, 4 NotConnected 5 } 6 7 public class Reachability { 8 9 /** 10 :see: Original post - http://www.chrisdanielson.com/2009/07/22/iphone-network-connectivity-test-example/ 11 */ 12 class func isConnected

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

同步Post方式 1 // MARK: - 同步Post方式 2 func synchronousPost() 3 { 4 //创建NSURL对象 5 var url:NSURL! = NSURL(string: "http://m.weather.com.cn/data/101010100.html") 6 7 //创建请求对象 8 var request : NSMutableURLRequest = NSMutableURLRequest(URL: url, cachePolic

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

同步Get方式 1 // MARK: - 同步Get方式 2 func synchronousGet() 3 { 4 //创建NSURL对象 5 var url:NSURL! = NSURL(string: "http://m.weather.com.cn/data/101010100.html") 6 7 //创建请求对象 8 var urlRequest : NSURLRequest = NSURLRequest(URL: url, cachePolicy: NSURLReques

iOS开发——网络编程OC篇&(三)数据请求

一.GET请求和POST请求简单说明 创建GET请求 1 // 1.设置请求路径 2 NSString *urlStr=[NSString stringWithFormat:@"http://192.168.1.53:8080/MJServer/login?username=%@&pwd=%@",self.username.text,self.pwd.text]; 3 NSURL *url=[NSURL URLWithString:urlStr]; 4 5 // 2.创建请求对