Swift URL处理

时间:2014-11-25 08:56:29

标签: ios swift nsurlconnection http-request

这是我的问题;我想从URL获取一些数据,这是代码:

let internetURL = NSURL(string:"http://www.example.org")
let siteURL = NSURLRequest(URL: internetURL!)
let siteData = NSURLConnection(request: siteURL, delegate: nil, startImmediately: true)
let strSiteData = NSString(data: siteData, encoding: NSUTF8StringEncoding)

当我写这个时,XCode给我以下错误:

调用中的额外参数'encoding'

在最后一行。 我该怎么办?

2 个答案:

答案 0 :(得分:5)

你可以这样做

var data = NSMutableData()

func someMethod()
{        
    let internetURL = NSURL(string:"http://www.google.com")
    let siteURL = NSURLRequest(URL: internetURL)
    let siteData = NSURLConnection(request: siteURL, delegate: self, 
         startImmediately: true)    
}

func connection(connection: NSURLConnection!, didReceiveData _data: NSData!)
{ 
    self.data.appendData(_data)
}

func connectionDidFinishLoading(connection: NSURLConnection!)
{
    var responseStr = NSString(data:self.data, encoding:NSUTF8StringEncoding)
}

答案 1 :(得分:0)

错误消息很糟糕。

如果在游乐场中运行它,您可以看到siteData是NSURLConnection对象。不是NSData对象。这就是为什么它不会编译。

从URL创建字符串的正确方法是:

let internetURL = NSURL(string:"http://www.example.org")

var datastring = NSString(contentsOfURL: internetURL!, usedEncoding: nil, error: nil)

正确使用NSURLConnection很复杂,因为它是一个低级API,只有在你做一些不寻常的事情时才能使用它。正确使用它需要您理解TCP / IP堆栈并与之交互。