//同期・Web数据取得 -1 文本形式 var strHTML = Nsstring(contentsOfURL: NSURL(string: "http://www.Google.com")!,enCoding: NSUTF8StringEnCoding,error: nil) println(strHTML) //同期・Web数据取得 -2 二进制数据 var data = NSData(contentsOfURL: NSURL(string: "http://www.Google.com")!) var str = Nsstring(data: data!,enCoding: NSUTF8StringEnCoding) println(str)
//非同期・Web取得数据 -1 阻塞型 var response: NSURLResponse? var error: NSError? var syncdata = NSURLConnection.sendSynchronousRequest(NSURLRequest(URL: NSURL(string: "http://www.Google.com")!),returningResponse: &response,error: &error) if let temp = syncdata { var syncStr = Nsstring(data: temp,enCoding: NSUTF8StringEnCoding) println(syncStr) } if let r = response { //取得Response println(r) } if let e = error { //有Error时的处理 println(e) } //非同期・Web取得数据 -2 非阻塞型 NSURLConnection.sendAsynchronousRequest(NSURLRequest(URL: NSURL(string: "http://localhost:8080/Iphoneserver/hello.Jsp?name=123")!),queue: NSOperationQueue(),{ (response: NSURLResponse!,data:NSData!,error: NSError!) -> VoID in if let e = error { println(e) } println(Nsstring(data: data,enCoding: NSUTF8StringEnCoding)!) });
//非同期・Web取得数据 -2 非阻塞型 -GET方式 NSURLConnection.sendAsynchronousRequest(NSURLRequest(URL: NSURL(string: "http://localhost:8080/Iphoneserver/hello.Jsp?name=\(paramname.text)")!),completionHandler: { (response: NSURLResponse!,error: NSError!) -> VoID in if let e = error { println(e) } println(self.paramname.text) var resultString = Nsstring(data: data,enCoding: NSUTF8StringEnCoding)! println(resultString) //向主线程发送消息(发的是函数指针吧) dispatch_sync(dispatch_get_main_queue(),{ () -> VoID in //由于queue参数指定了新开始一个线程来执行, 在使用NSOperationQueue()创建的副线程中是无法改变主线程的控件内容,所以使用dispatch_sync将处理发回主线程 //或者queue: NSOperationQueue.mainQueue() 指定使用主线程序,但是主线程过度使用的时候,主界面还是会感觉卡顿,要注意 self.resultTxt.text = resultString; }) });
//非同期・Web取得数据 -2 非阻塞型 -POST方式 //可变Request对象 var req = NSMutableURLRequest(URL: NSURL(string: "http://localhost:8080/Iphoneserver/hello.Jsp")!) req.httpMethod = "POST" req.httpBody = Nsstring(string: "name=\(paramname.text)").dataUsingEnCoding(NSUTF8StringEnCoding) NSURLConnection.sendAsynchronousRequest(req,queue: NSOperationQueue.mainQueue()) { (resp,data,error) -> VoID in if let e = error { println(e) } if let d = data { self.resultTxt.text = Nsstring(data: d,enCoding: NSUTF8StringEnCoding) } }总结
以上是内存溢出为你收集整理的Swift几种简单的Web数据通讯方式全部内容,希望文章能够帮你解决Swift几种简单的Web数据通讯方式所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)