IOS9.0后,就打算废弃NSURLConnection,主推NSURLSession
sendSynchronousRequest
同步Request
NSURLConnection.sendSynchronousRequest(request: NSURLRequest, returningResponse response: AutoreleasingUnsafeMutablePointer<NSURLResponse?>) throws -> NSData
<code class="language-Swift hljs cs has-numbering"> func usingSendSynchronousRequest(){ <span class="hljs-keyword">do</span>{ <span class="hljs-keyword">var</span> response:NSURLResponse? <span class="hljs-comment">// 发同步请求</span> <span class="hljs-keyword">let</span> data:NSData = <span class="hljs-keyword">try</span> NSURLConnection.sendSynchronousRequest(NSURLRequest(URL: NSURL(<span class="hljs-keyword">string</span>: <span class="hljs-string">"http://www.baidu.com"</span>)!), returningResponse: &response) <span class="hljs-keyword">if</span> <span class="hljs-keyword">let</span> d:NSData = data { NSLog(<span class="hljs-string">"\(NSString(data: d, encoding: NSUTF8StringEncoding))"</span>) } <span class="hljs-keyword">if</span> <span class="hljs-keyword">let</span> r:NSURLResponse = response{ NSLog(<span class="hljs-string">"\(r)"</span>) } }<span class="hljs-keyword">catch</span> <span class="hljs-keyword">let</span> error <span class="hljs-keyword">as</span> NSError{ NSLog(<span class="hljs-string">"\(error.localizedDescription)"</span>) } }</code><ul style="display: block;" class="pre-numbering"><li>1</li><li>2</li><li>3</li><li>4</li><li>5</li><li>6</li><li>7</li><li>8</li><li>9</li><li>10</li><li>11</li><li>12</li><li>13</li><li>14</li><li>15</li><li>16</li><li>17</li><li>18</li></ul>
sendAsynchronousRequest
异步Request
NSURLConnection.sendAsynchronousRequest(request: NSURLRequest, queue: NSOperationQueue, completionHandler handler: (NSURLResponse?, NSData?, NSError?) -> Void)
<code class="language-Swift hljs coffeescript has-numbering"> func usingSendAsynchronousRequest(){ <span class="hljs-regexp">//</span> 异步请求 NSURLConnection.sendAsynchronousRequest<span class="hljs-function"><span class="hljs-params">(NSURLRequest(URL: NSURL(string: <span class="hljs-string">"http://www.baidu.com"</span>)!), queue: NSOperationQueue())</span> { <span class="hljs-params">(resp:NSURLResponse?, data:NSData?, error:NSError?)</span> -></span> Void <span class="hljs-keyword">in</span> <span class="hljs-keyword">if</span> <span class="hljs-reserved">let</span> <span class="hljs-attribute">e</span>:NSError = error{ NSLog(<span class="hljs-string">"\(e.localizedDescription)"</span>) }<span class="hljs-keyword">else</span>{ NSLog(<span class="hljs-string">"\(NSString(data: data!, encoding: NSUTF8StringEncoding))"</span>) } } }</code><ul style="display: block;" class="pre-numbering"><li>1</li><li>2</li><li>3</li><li>4</li><li>5</li><li>6</li><li>7</li><li>8</li><li>9</li><li>10</li></ul>
NSURLSession
NSURLSession实例化一个网络请求task
NSURLSession.dataTaskWithRequest(request: NSURLRequest, completionHandler: (NSData?, NSURLResponse?, NSError?) -> Void) -> NSURLSessionDataTask
<code class="language-Swift hljs coffeescript has-numbering"> func usingNSURLSession(){ <span class="hljs-reserved">let</span> session = NSURLSession.sharedSession() <span class="hljs-reserved">let</span> request = NSURLRequest(<span class="hljs-attribute">URL</span>: NSURL(<span class="hljs-attribute">string</span>: <span class="hljs-string">"http://baidu.com"</span>)!) <span class="hljs-reserved">let</span> task = session.dataTaskWithRequest<span class="hljs-function"><span class="hljs-params">(request, completionHandler: { (data, response, error) -> Void <span class="hljs-keyword">in</span> <span class="hljs-reserved">let</span> string = NSString(data: data!, encoding: NSUTF8StringEncoding) NSLog(<span class="hljs-string">"\(string)"</span>) })</span> <span class="hljs-title">task</span>.<span class="hljs-title">resume</span><span class="hljs-params">()</span> }</span></code><ul style="display: block;" class="pre-numbering"><li>1</li><li>2</li><li>3</li><li>4</li><li>5</li><li>6</li><li>7</li><li>8</li><li>9</li></ul>