ios - NSURL 请求不起作用

标签 ios swift dictionary nsurlrequest tvos

我有一个请求,之后我需要一本完整的词典。但是当我用断点检查我的请求时,我发现它跳过了我的请求......这有什么问题?

  func downloadPackages() {
    let url = "\(URL_BASE)package/list?id=666"
    let dataURL = NSURL(string: url)
    let dataRequest = NSURLRequest(URL: dataURL!)
    let dataSession = NSURLSession.sharedSession()
    print("QQ")
    let dataTask = dataSession.dataTaskWithRequest(dataRequest) { (data, response, error) -> Void in
        print("QQ2")

        if error != nil {
            print(error.debugDescription)
        } else {
            do {
                let packageDict = try NSJSONSerialization.JSONObjectWithData(data!, options: .AllowFragments) as? Dictionary<String, AnyObject>
                if let results = packageDict!["data"] as? [Dictionary<String, AnyObject>] {
                    for obj in results {
                        let package = Package(packageDict: obj)
                        print(self.monsters.count)
                        self.monsters.append(package)

                    }
                }
                //Main UI thread
                dispatch_async(dispatch_get_main_queue()) {
                    self.tableView.reloadData()
                }
            }
            catch {
            }
        }
    }
    dataTask.resume()
}

它不打印(“QQ2”),但打印(“QQ”)。

最佳答案

我认为您没有添加 HTTP 请求方法和值。所以尝试这样:-

func downloadPackages() {
    let url = "\(URL_BASE)package/list?id=666"
    let dataURL = NSURL(string: url)
    let dataRequest: NSMutableURLRequest = NSMutableURLRequest(URL: dataURL!)
    dataRequest.HTTPMethod = "POST"
    dataRequest.setValue("application/x-www-form-urlencoded", forHTTPHeaderField: "Content-Type")
    dataRequest.setValue("*/*", forHTTPHeaderField: "Accept")
    let dataSession = NSURLSession.sharedSession()
    print("QQ")
    let dataTask = dataSession.dataTaskWithRequest(dataRequest) { (data, response, error) -> Void in
        print("QQ2")

        if error != nil {
            print(error.debugDescription)
        } else {
            do {
                let packageDict = try NSJSONSerialization.JSONObjectWithData(data!, options: .AllowFragments) as? Dictionary<String, AnyObject>
                if let results = packageDict!["data"] as? [Dictionary<String, AnyObject>] {
                    for obj in results {
                        let package = Package(packageDict: obj)
                        print(self.monsters.count)
                        self.monsters.append(package)

                    }
                }
                //Main UI thread
                dispatch_async(dispatch_get_main_queue()) {
                    self.tableView.reloadData()
               }
            }
            catch {
            }
        }
    }
    dataTask.resume()
}

关于ios - NSURL 请求不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37338491/

相关文章:

Java 8 流 Map<String, List<String>> 每个键值的总和

ios - Swift 中 registerclass 的使用不明确

javascript - 性能: findIndex vs Array.原型(prototype).map

iOS 应用程序/键盘插件无效

ios - 如果互联网连接丢失,如何禁用整个应用程序?

ios - 保持来自不同表(实体)的 2 个特定托管对象与核心数据之间关联的最佳方法是什么?

ios - NS无效参数异常 : unrecognized selector sent to instance | SWIFT

python - 将相同字典键的值放在python中的一组中

java - oAuth 2 Gmail - Android/iOS 连接和服务器使用

ios - 与另一家公司合作时上传 iOS App