如何在SWIFT中发出HTTP请求?

如何在SWIFT中发出HTTP请求?

我在iBooks中阅读了苹果的编程语言SWIFT,但我不知道如何用SWIFT发出http请求(类似curl)。我需要导入Obj-C类还是只需要导入默认库?还是不可能基于本机快速代码发出HTTP请求?



达令说
浏览 1807回答 3
3回答

ibeautiful

你可以用URL, URLRequest和URLSession或NSURLConnection就像你通常在目标C中所做的那样。请注意,对于IOS 7.0及更高版本,URLSession是首选。使用URLSession初始化URL对象和URLSessionDataTask从…URLSession..然后用resume().let url = URL(string: "http://www.stackoverflow.com")!let task = URLSession.shared.dataTask(with: url) {(data, response, error) in     guard let data = data else { return }     print(String(data: data, encoding: .utf8)!)}task.resume()使用NSURLConnection首先,初始化URL和一个URLRequest:let url = URL(string: "http://www.stackoverflow.com")!var request = URLRequest(url: url)request.httpMethod = "POST"然后,可以用以下内容异步加载请求:NSURLConnection.sendAsynchronousRequest(request, queue: OperationQueue.main) {(response, data, error) in     guard let data = data else { return }     print(String(data: data, encoding: .utf8)!)}或者您可以初始化NSURLConnection:let connection = NSURLConnection(request: request, delegate:nil, startImmediately: true)只需确保将您的代表设置为nil并使用委托方法来处理所接收的响应和数据。有关更多细节,请查看的文件NSURLConnectionDataDelegate协议在Xcode操场上进行测试如果要在xcode操场上尝试此代码,请添加import PlaygroundSupport到您的操场,以及以下电话:PlaygroundPage.current.needsIndefiniteExecution = true这将允许您在操场中使用异步代码。

尚方宝剑之说

检查以下代码:1.SynchonousRequestSWIFT 1.2&nbsp;&nbsp;&nbsp;&nbsp;let&nbsp;urlPath:&nbsp;String&nbsp;=&nbsp;"YOUR_URL_HERE" &nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;url:&nbsp;NSURL&nbsp;=&nbsp;NSURL(string:&nbsp;urlPath)! &nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;request1:&nbsp;NSURLRequest&nbsp;=&nbsp;NSURLRequest(URL:&nbsp;url) &nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;response:&nbsp;AutoreleasingUnsafeMutablePointer<NSURLResponse?>=nil &nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;dataVal:&nbsp;NSData&nbsp;=&nbsp;&nbsp;NSURLConnection.sendSynchronousRequest(request1,&nbsp;returningResponse:&nbsp;response,&nbsp;error:nil)! &nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;err:&nbsp;NSError &nbsp;&nbsp;&nbsp;&nbsp;println(response) &nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;jsonResult:&nbsp;NSDictionary&nbsp;=&nbsp;NSJSONSerialization.JSONObjectWithData(dataVal,&nbsp;options:&nbsp;NSJSONReadingOptions.MutableContainers,&nbsp;error: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&err)&nbsp;as?&nbsp;NSDictionary &nbsp;&nbsp;&nbsp;&nbsp;println("Synchronous\(jsonResult)")SWIFT 2.0+let&nbsp;urlPath:&nbsp;String&nbsp;=&nbsp;"YOUR_URL_HERE" &nbsp;&nbsp;&nbsp;&nbsp;let&nbsp;url:&nbsp;NSURL&nbsp;=&nbsp;NSURL(string:&nbsp;urlPath)! &nbsp;&nbsp;&nbsp;&nbsp;let&nbsp;request1:&nbsp;NSURLRequest&nbsp;=&nbsp;NSURLRequest(URL:&nbsp;url) &nbsp;&nbsp;&nbsp;&nbsp;let&nbsp;response:&nbsp;AutoreleasingUnsafeMutablePointer<NSURLResponse?>=nil &nbsp;&nbsp;&nbsp;&nbsp;do{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;let&nbsp;dataVal&nbsp;=&nbsp;try&nbsp;NSURLConnection.sendSynchronousRequest(request1,&nbsp;returningResponse:&nbsp;response) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;print(response) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;do&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;let&nbsp;jsonResult&nbsp;=&nbsp;try&nbsp;NSJSONSerialization.JSONObjectWithData(dataVal,&nbsp;options:&nbsp;[])&nbsp;as?&nbsp;NSDictionary&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;print("Synchronous\(jsonResult)") &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;catch&nbsp;let&nbsp;error&nbsp;as&nbsp;NSError&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;print(error.localizedDescription) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;}catch&nbsp;let&nbsp;error&nbsp;as&nbsp;NSError &nbsp;&nbsp;&nbsp;&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;print(error.localizedDescription) &nbsp;&nbsp;&nbsp;&nbsp;}2.AsynchoousRequestSWIFT 1.2let&nbsp;urlPath:&nbsp;String&nbsp;=&nbsp;"YOUR_URL_HERE" &nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;url:&nbsp;NSURL&nbsp;=&nbsp;NSURL(string:&nbsp;urlPath)! &nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;request1:&nbsp;NSURLRequest&nbsp;=&nbsp;NSURLRequest(URL:&nbsp;url) &nbsp;&nbsp;&nbsp;&nbsp;let&nbsp;queue:NSOperationQueue&nbsp;=&nbsp;NSOperationQueue() &nbsp;&nbsp;&nbsp;&nbsp;NSURLConnection.sendAsynchronousRequest(request1,&nbsp;queue:&nbsp;queue,&nbsp;completionHandler:{&nbsp;(response:&nbsp;NSURLResponse!,&nbsp;data:&nbsp;NSData!,&nbsp;error: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;NSError!)&nbsp;->&nbsp;Void&nbsp;in &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;err:&nbsp;NSError &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;jsonResult:&nbsp;NSDictionary&nbsp;=&nbsp;NSJSONSerialization.JSONObjectWithData(data,&nbsp;options:&nbsp;NSJSONReadingOptions.MutableContainers,&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;error:&nbsp;nil)&nbsp;as&nbsp;NSDictionary &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;println("Asynchronous\(jsonResult)") &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;})SWIFT 2.0+let&nbsp;urlPath:&nbsp;String&nbsp;=&nbsp;"YOUR_URL_HERE" &nbsp;&nbsp;&nbsp;&nbsp;let&nbsp;url:&nbsp;NSURL&nbsp;=&nbsp;NSURL(string:&nbsp;urlPath)! &nbsp;&nbsp;&nbsp;&nbsp;let&nbsp;request1:&nbsp;NSURLRequest&nbsp;=&nbsp;NSURLRequest(URL:&nbsp;url) &nbsp;&nbsp;&nbsp;&nbsp;let&nbsp;queue:NSOperationQueue&nbsp;=&nbsp;NSOperationQueue() &nbsp;&nbsp;&nbsp;&nbsp;NSURLConnection.sendAsynchronousRequest(request1,&nbsp;queue:&nbsp;queue,&nbsp;completionHandler:{&nbsp;(response:&nbsp;NSURLResponse?,&nbsp;data:&nbsp;NSData?,&nbsp;error:&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;NSError?)&nbsp;->&nbsp;Void&nbsp;in &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;do&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;let&nbsp;jsonResult&nbsp;=&nbsp;try&nbsp;NSJSONSerialization.JSONObjectWithData(data!,&nbsp;options:&nbsp;[])&nbsp;as?&nbsp;NSDictionary&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;print("ASynchronous\(jsonResult)") &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;catch&nbsp;let&nbsp;error&nbsp;as&nbsp;NSError&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;print(error.localizedDescription) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;})3.与往常一样,URL连接SWIFT 1.2&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;dataVal&nbsp;=&nbsp;NSMutableData() &nbsp;&nbsp;&nbsp;&nbsp;let&nbsp;urlPath:&nbsp;String&nbsp;=&nbsp;"YOUR&nbsp;URL&nbsp;HERE" &nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;url:&nbsp;NSURL&nbsp;=&nbsp;NSURL(string:&nbsp;urlPath)! &nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;request:&nbsp;NSURLRequest&nbsp;=&nbsp;NSURLRequest(URL:&nbsp;url) &nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;connection:&nbsp;NSURLConnection&nbsp;=&nbsp;NSURLConnection(request:&nbsp;request,&nbsp;delegate:&nbsp;self,&nbsp;startImmediately:&nbsp;true)! &nbsp;&nbsp;&nbsp;&nbsp;connection.start()然后&nbsp;func&nbsp;connection(connection:&nbsp;NSURLConnection!,&nbsp;didReceiveData&nbsp;data:&nbsp;NSData!){ &nbsp;&nbsp;&nbsp;&nbsp;self.dataVal?.appendData(data)}func&nbsp;connectionDidFinishLoading(connection:&nbsp;NSURLConnection!){ &nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;error:&nbsp;NSErrorPointer=nil &nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;jsonResult:&nbsp;NSDictionary&nbsp;=&nbsp;NSJSONSerialization.JSONObjectWithData(dataVal!,&nbsp;options:&nbsp;NSJSONReadingOptions.MutableContainers, &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;error:&nbsp;error)&nbsp;as&nbsp;NSDictionary &nbsp;&nbsp;&nbsp;&nbsp;println(jsonResult)}SWIFT 2.0+&nbsp;&nbsp;&nbsp;var&nbsp;dataVal&nbsp;=&nbsp;NSMutableData() &nbsp;&nbsp;&nbsp;&nbsp;let&nbsp;urlPath:&nbsp;String&nbsp;=&nbsp;"YOUR&nbsp;URL&nbsp;HERE" &nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;url:&nbsp;NSURL&nbsp;=&nbsp;NSURL(string:&nbsp;urlPath)! &nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;request:&nbsp;NSURLRequest&nbsp;=&nbsp;NSURLRequest(URL:&nbsp;url) &nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;connection:&nbsp;NSURLConnection&nbsp;=&nbsp;NSURLConnection(request:&nbsp;request,&nbsp;delegate:&nbsp;self,&nbsp;startImmediately:&nbsp;true)! &nbsp;&nbsp;&nbsp;&nbsp;connection.start()然后func&nbsp;connection(connection:&nbsp;NSURLConnection!,&nbsp;didReceiveData&nbsp;data:&nbsp;NSData!){ &nbsp;&nbsp;&nbsp;&nbsp;dataVal.appendData(data)}func&nbsp;connectionDidFinishLoading(connection:&nbsp;NSURLConnection!){ &nbsp;&nbsp;&nbsp;&nbsp;do&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;let&nbsp;jsonResult&nbsp;=&nbsp;try&nbsp;NSJSONSerialization.JSONObjectWithData(dataVal,&nbsp;options:&nbsp;[])&nbsp;as?&nbsp;NSDictionary&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;print(jsonResult) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;catch&nbsp;let&nbsp;error&nbsp;as&nbsp;NSError&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;print(error.localizedDescription) &nbsp;&nbsp;&nbsp;&nbsp;}}4.异地请求SWIFT 1.2&nbsp;&nbsp;&nbsp;&nbsp;let&nbsp;urlPath:&nbsp;String&nbsp;=&nbsp;"YOUR&nbsp;URL&nbsp;HERE" &nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;url:&nbsp;NSURL&nbsp;=&nbsp;NSURL(string:&nbsp;urlPath)! &nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;request1:&nbsp;NSMutableURLRequest&nbsp;=&nbsp;NSMutableURLRequest(URL:&nbsp;url) &nbsp;&nbsp;&nbsp;&nbsp;request1.HTTPMethod&nbsp;=&nbsp;"POST" &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;stringPost="deviceToken=123456"&nbsp;//&nbsp;Key&nbsp;and&nbsp;Value &nbsp;&nbsp;&nbsp;&nbsp;let&nbsp;data&nbsp;=&nbsp;stringPost.dataUsingEncoding(NSUTF8StringEncoding) &nbsp;&nbsp;&nbsp;&nbsp;request1.timeoutInterval&nbsp;=&nbsp;60 &nbsp;&nbsp;&nbsp;&nbsp;request1.HTTPBody=data &nbsp;&nbsp;&nbsp;&nbsp;request1.HTTPShouldHandleCookies=false &nbsp;&nbsp;&nbsp;&nbsp;let&nbsp;queue:NSOperationQueue&nbsp;=&nbsp;NSOperationQueue() &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;NSURLConnection.sendAsynchronousRequest(request1,&nbsp;queue:&nbsp;queue,&nbsp;completionHandler:{&nbsp;(response:&nbsp;NSURLResponse!,&nbsp;data:&nbsp;NSData!,&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;error:&nbsp;NSError!)&nbsp;->&nbsp;Void&nbsp;in &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;err:&nbsp;NSError &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;jsonResult:&nbsp;NSDictionary&nbsp;=&nbsp;NSJSONSerialization.JSONObjectWithData(data,&nbsp;options:&nbsp;NSJSONReadingOptions.MutableContainers, &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;error:&nbsp;nil)&nbsp;as&nbsp;NSDictionary &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;println("AsSynchronous\(jsonResult)") &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;})SWIFT 2.0+let&nbsp;urlPath:&nbsp;String&nbsp;=&nbsp;"YOUR&nbsp;URL&nbsp;HERE" &nbsp;&nbsp;&nbsp;&nbsp;let&nbsp;url:&nbsp;NSURL&nbsp;=&nbsp;NSURL(string:&nbsp;urlPath)! &nbsp;&nbsp;&nbsp;&nbsp;let&nbsp;request1:&nbsp;NSMutableURLRequest&nbsp;=&nbsp;NSMutableURLRequest(URL:&nbsp;url) &nbsp;&nbsp;&nbsp;&nbsp;request1.HTTPMethod&nbsp;=&nbsp;"POST" &nbsp;&nbsp;&nbsp;&nbsp;let&nbsp;stringPost="deviceToken=123456"&nbsp;//&nbsp;Key&nbsp;and&nbsp;Value &nbsp;&nbsp;&nbsp;&nbsp;let&nbsp;data&nbsp;=&nbsp;stringPost.dataUsingEncoding(NSUTF8StringEncoding) &nbsp;&nbsp;&nbsp;&nbsp;request1.timeoutInterval&nbsp;=&nbsp;60 &nbsp;&nbsp;&nbsp;&nbsp;request1.HTTPBody=data &nbsp;&nbsp;&nbsp;&nbsp;request1.HTTPShouldHandleCookies=false &nbsp;&nbsp;&nbsp;&nbsp;let&nbsp;queue:NSOperationQueue&nbsp;=&nbsp;NSOperationQueue() &nbsp;&nbsp;&nbsp;&nbsp;NSURLConnection.sendAsynchronousRequest(request1,&nbsp;queue:&nbsp;queue,&nbsp;completionHandler: &nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;(response:&nbsp;NSURLResponse?,&nbsp;data:&nbsp;NSData?,&nbsp;error:&nbsp;NSError?)&nbsp;->&nbsp;Void&nbsp;in &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;do&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;let&nbsp;jsonResult&nbsp;=&nbsp;try&nbsp;NSJSONSerialization.JSONObjectWithData(data!,&nbsp;options:&nbsp;[])&nbsp;as?&nbsp;NSDictionary&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;print("ASynchronous\(jsonResult)") &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;catch&nbsp;let&nbsp;error&nbsp;as&nbsp;NSError&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;print(error.localizedDescription) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;})5.同步索取请求SWIFT 1.2&nbsp;&nbsp;&nbsp;&nbsp;let&nbsp;urlPath:&nbsp;String&nbsp;=&nbsp;"YOUR&nbsp;URL&nbsp;HERE" &nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;url:&nbsp;NSURL&nbsp;=&nbsp;NSURL(string:&nbsp;urlPath)! &nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;request1:&nbsp;NSMutableURLRequest&nbsp;=&nbsp;NSMutableURLRequest(URL:&nbsp;url) &nbsp;&nbsp;&nbsp;&nbsp;request1.HTTPMethod&nbsp;=&nbsp;"GET" &nbsp;&nbsp;&nbsp;&nbsp;request1.timeoutInterval&nbsp;=&nbsp;60 &nbsp;&nbsp;&nbsp;&nbsp;let&nbsp;queue:NSOperationQueue&nbsp;=&nbsp;NSOperationQueue() &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;NSURLConnection.sendAsynchronousRequest(request1,&nbsp;queue:&nbsp;queue,&nbsp;completionHandler: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;(response:&nbsp;NSURLResponse!,&nbsp;data:&nbsp;NSData!,&nbsp;error:&nbsp;NSError!)&nbsp;->&nbsp;Void&nbsp;in &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;err:&nbsp;NSError &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;jsonResult:&nbsp;NSDictionary&nbsp;=&nbsp;NSJSONSerialization.JSONObjectWithData(data,&nbsp;options:&nbsp;NSJSONReadingOptions.MutableContainers, &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;error:&nbsp;nil)&nbsp;as&nbsp;NSDictionary &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;println("AsSynchronous\(jsonResult)") &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;})SWIFT 2.0+let&nbsp;urlPath:&nbsp;String&nbsp;=&nbsp;"YOUR&nbsp;URL&nbsp;HERE" &nbsp;&nbsp;&nbsp;&nbsp;let&nbsp;url:&nbsp;NSURL&nbsp;=&nbsp;NSURL(string:&nbsp;urlPath)! &nbsp;&nbsp;&nbsp;&nbsp;let&nbsp;request1:&nbsp;NSMutableURLRequest&nbsp;=&nbsp;NSMutableURLRequest(URL:&nbsp;url) &nbsp;&nbsp;&nbsp;&nbsp;request1.HTTPMethod&nbsp;=&nbsp;"GET" &nbsp;&nbsp;&nbsp;&nbsp;let&nbsp;queue:NSOperationQueue&nbsp;=&nbsp;NSOperationQueue() &nbsp;&nbsp;&nbsp;&nbsp;NSURLConnection.sendAsynchronousRequest(request1,&nbsp;queue:&nbsp;queue,&nbsp;completionHandler: &nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;(response:&nbsp;NSURLResponse?,&nbsp;data:&nbsp;NSData?,&nbsp;error:&nbsp;NSError?)&nbsp;->&nbsp;Void&nbsp;in &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;do&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;let&nbsp;jsonResult&nbsp;=&nbsp;try&nbsp;NSJSONSerialization.JSONObjectWithData(data!,&nbsp;options:&nbsp;[])&nbsp;as?&nbsp;NSDictionary&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;print("ASynchronous\(jsonResult)") &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;catch&nbsp;let&nbsp;error&nbsp;as&nbsp;NSError&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;print(error.localizedDescription) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;})6.图像(档案)上传SWIFT 2.0+&nbsp;&nbsp;let&nbsp;mainURL&nbsp;=&nbsp;"YOUR_URL_HERE" &nbsp;&nbsp;&nbsp;&nbsp;let&nbsp;url&nbsp;=&nbsp;NSURL(string:&nbsp;mainURL) &nbsp;&nbsp;&nbsp;&nbsp;let&nbsp;request&nbsp;=&nbsp;NSMutableURLRequest(URL:&nbsp;url!) &nbsp;&nbsp;&nbsp;&nbsp;let&nbsp;boundary&nbsp;=&nbsp;"78876565564454554547676" &nbsp;&nbsp;&nbsp;&nbsp;request.addValue("multipart/form-data;&nbsp;boundary=\(boundary)",&nbsp;forHTTPHeaderField:&nbsp;"Content-Type") &nbsp;&nbsp;&nbsp;&nbsp;request.HTTPMethod&nbsp;=&nbsp;"POST"&nbsp;//&nbsp;POST&nbsp;OR&nbsp;PUT&nbsp;What&nbsp;you&nbsp;want &nbsp;&nbsp;&nbsp;&nbsp;let&nbsp;session&nbsp;=&nbsp;NSURLSession(configuration:NSURLSessionConfiguration.defaultSessionConfiguration(),&nbsp;delegate:&nbsp;nil,&nbsp;delegateQueue:&nbsp;nil) &nbsp;&nbsp;&nbsp;&nbsp;let&nbsp;imageData&nbsp;=&nbsp;UIImageJPEGRepresentation(UIImage(named:&nbsp;"Test.jpeg")!,&nbsp;1) &nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;body&nbsp;=&nbsp;NSMutableData() &nbsp;&nbsp;&nbsp;&nbsp;body.appendData("--\(boundary)\r\n".dataUsingEncoding(NSUTF8StringEncoding)!) &nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Append&nbsp;your&nbsp;parameters &nbsp;&nbsp;&nbsp;&nbsp;body.appendData("Content-Disposition:&nbsp;form-data;&nbsp;name=\"name\"\r\n\r\n".dataUsingEncoding(NSUTF8StringEncoding)!) &nbsp;&nbsp;&nbsp;&nbsp;body.appendData("PREMKUMAR\r\n".dataUsingEncoding(NSUTF8StringEncoding,&nbsp;allowLossyConversion:&nbsp;true)!) &nbsp;&nbsp;&nbsp;&nbsp;body.appendData("--\(boundary)\r\n".dataUsingEncoding(NSUTF8StringEncoding)!) &nbsp;&nbsp;&nbsp;&nbsp;body.appendData("Content-Disposition:&nbsp;form-data;&nbsp;name=\"description\"\r\n\r\n".dataUsingEncoding(NSUTF8StringEncoding)!) &nbsp;&nbsp;&nbsp;&nbsp;body.appendData("IOS_DEVELOPER\r\n".dataUsingEncoding(NSUTF8StringEncoding,&nbsp;allowLossyConversion:&nbsp;true)!) &nbsp;&nbsp;&nbsp;&nbsp;body.appendData("--\(boundary)\r\n".dataUsingEncoding(NSUTF8StringEncoding)!) &nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Append&nbsp;your&nbsp;Image/File&nbsp;Data &nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;imageNameval&nbsp;=&nbsp;"HELLO.jpg" &nbsp;&nbsp;&nbsp;&nbsp;body.appendData("--\(boundary)\r\n".dataUsingEncoding(NSUTF8StringEncoding)!) &nbsp;&nbsp;&nbsp;&nbsp;body.appendData("Content-Disposition:&nbsp;form-data;&nbsp;name=\"profile_photo\";&nbsp;filename=\"\(imageNameval)\"\r\n". &nbsp;&nbsp;&nbsp;&nbsp;dataUsingEncoding(NSUTF8StringEncoding)!) &nbsp;&nbsp;&nbsp;&nbsp;body.appendData("Content-Type:&nbsp;image/jpeg\r\n\r\n".dataUsingEncoding(NSUTF8StringEncoding)!) &nbsp;&nbsp;&nbsp;&nbsp;body.appendData(imageData!) &nbsp;&nbsp;&nbsp;&nbsp;body.appendData("\r\n".dataUsingEncoding(NSUTF8StringEncoding)!) &nbsp;&nbsp;&nbsp;&nbsp;body.appendData("--\(boundary)--\r\n".dataUsingEncoding(NSUTF8StringEncoding)!) &nbsp;&nbsp;&nbsp;&nbsp;request.HTTPBody&nbsp;=&nbsp;body&nbsp;&nbsp;&nbsp;&nbsp;let&nbsp;dataTask&nbsp;=&nbsp;session.dataTaskWithRequest(request)&nbsp;{&nbsp;(data,&nbsp;response,&nbsp;error)&nbsp;->&nbsp;Void&nbsp;in &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;error&nbsp;!=&nbsp;nil&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//handle&nbsp;error &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;let&nbsp;outputString&nbsp;:&nbsp;NSString&nbsp;=&nbsp;NSString(data:data!,&nbsp;encoding:NSUTF8StringEncoding)! &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;print("Response:\(outputString)") &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;dataTask.resume()
打开App,查看更多内容
随时随地看视频慕课网APP