我的 session.dataTaskWithRequest 方法没有返回任何数据
My session.dataTaskWithRequest method is not returning any data
我需要询问我们的 Api 来填充我们的主屏幕,所以我设置了一个名为 RestApiManager
的单独 class 并添加了以下代码:
import UIKit
class RestApiManager: NSObject {
static let sharedInstance = RestApiManager()
let baseURL = "http://api.randomuser.me/"
func getData() {
let request = NSMutableURLRequest(URL: NSURL(string: baseURL)!)
let session = NSURLSession.sharedSession()
let task = session.dataTaskWithRequest(request, completionHandler: {data, response, error -> Void in
if data != nil {
do {
let json = try NSJSONSerialization.JSONObjectWithData(data!, options: .MutableLeaves) as? NSDictionary //:JSON = JSON(data: jsonData)
}catch _ as NSError
{
}
}
})
task.resume()
}
}
我使用 url 作为简单测试显示,据我所知 returns 数据没有任何属性,因为我在我的浏览器中测试它,但每次我 运行 我的应用程序数据始终为零。
我做错了什么?
Since this is a Http request you need to add NSTransportSecurity in
your info.plist. Hope you have done that.
如果你还没有这样做。访问这个
您还需要告知请求方法,即在您的情况下为 .GET。
let headers = ["cache-control": "no-cache"]
var request = NSMutableURLRequest(URL: NSURL(string: "http://api.randomuser.me/")!,
cachePolicy: .UseProtocolCachePolicy,
timeoutInterval: 10.0)
request.HTTPMethod = "GET"
request.allHTTPHeaderFields = headers
let session = NSURLSession.sharedSession()
let dataTask = session.dataTaskWithRequest(request, completionHandler: { (data, response, error) -> Void in
if (error != nil) {
println(error)
} else {
let httpResponse = response as? NSHTTPURLResponse
println(httpResponse)
}
})
dataTask.resume()
这对我有用,也可能对你有用。
我需要询问我们的 Api 来填充我们的主屏幕,所以我设置了一个名为 RestApiManager
的单独 class 并添加了以下代码:
import UIKit
class RestApiManager: NSObject {
static let sharedInstance = RestApiManager()
let baseURL = "http://api.randomuser.me/"
func getData() {
let request = NSMutableURLRequest(URL: NSURL(string: baseURL)!)
let session = NSURLSession.sharedSession()
let task = session.dataTaskWithRequest(request, completionHandler: {data, response, error -> Void in
if data != nil {
do {
let json = try NSJSONSerialization.JSONObjectWithData(data!, options: .MutableLeaves) as? NSDictionary //:JSON = JSON(data: jsonData)
}catch _ as NSError
{
}
}
})
task.resume()
}
}
我使用 url 作为简单测试显示,据我所知 returns 数据没有任何属性,因为我在我的浏览器中测试它,但每次我 运行 我的应用程序数据始终为零。
我做错了什么?
Since this is a Http request you need to add NSTransportSecurity in your info.plist. Hope you have done that.
如果你还没有这样做。访问这个
您还需要告知请求方法,即在您的情况下为 .GET。
let headers = ["cache-control": "no-cache"]
var request = NSMutableURLRequest(URL: NSURL(string: "http://api.randomuser.me/")!,
cachePolicy: .UseProtocolCachePolicy,
timeoutInterval: 10.0)
request.HTTPMethod = "GET"
request.allHTTPHeaderFields = headers
let session = NSURLSession.sharedSession()
let dataTask = session.dataTaskWithRequest(request, completionHandler: { (data, response, error) -> Void in
if (error != nil) {
println(error)
} else {
let httpResponse = response as? NSHTTPURLResponse
println(httpResponse)
}
})
dataTask.resume()
这对我有用,也可能对你有用。