当前位置: 首页 > 知识库问答 >
问题:

在离线模式下获取响应

陆才俊
2023-03-14

我在wift 3.0中访问了一个Web服务,并且我也在离线模式下收到响应。

以下是我工作的细节:

>

  • 我需要调用1个Web服务-让url=URL(string:"http://microblogging.wingnity.com/JSONParsingTutorial/jsonActors")

    通过使用URLSession。共享。数据任务(…)我在上述web服务中调用的方法。

    用try?语句的JSONSerialization。jsonObject(with:data!,options:JSONSerialization.ReadingOptions.mutableContainers)作为任何对象,我解析了数据。

    我运行了上面的代码,它给出了我期望的响应(在线模式)。

    现在我关掉wifi

    求你了,我需要帮助。为什么在脱机模式下得到响应(我打印阵列大小

    这是代码。

    我正在使用Swift 3.0开发Xcode 8.1

    {final let urlString=”http://microblogging.wingnity.com/JSONParsingTutorial/jsonActors"

    覆盖func viewDidLoad(){super.viewDidLoad()

        self.downloadJsonWithURL()
    
        print("Inside viewDidLoad")
    
        // Do any additional setup after loading the view, typically from a nib.
    }
    
    
    func downloadJsonWithURL() {
    
        let url = URL(string: urlString)
    
        let task = URLSession.shared.dataTask(with: url!, completionHandler: {(data, response, error) -> Void in
    
    
            if error != nil
            {
                print("Error Found!!!!")
                return
            }
    
            else
            {
                guard let jsonObj = try? JSONSerialization.jsonObject(with: data!, options:JSONSerialization.ReadingOptions.mutableContainers) as AnyObject
    
                    else
                {
                    // if 'let jsonObj = try? JSONSerialization.jsonObject(with: data!, options: []) as? NSDictionary' fails(i.e falls) then this block will execute.
                    return
                }
    
    
                if let actorArray = jsonObj.value(forKey: "actors") as? NSArray {
                    for actor in actorArray{
                        print("Actor Array = \(actorArray.count)")
                        if let actorDict = actor as? NSDictionary {
    
                            if let name = actorDict.value(forKey: "name") {
                                self.nameArray.append(name as! String)
                            }
    
                            if let name = actorDict.value(forKey: "dob") {
                                self.dobArray.append(name as! String)
                            }
    
                            if let name = actorDict.value(forKey: "image") {
                                self.imgURLArray.append(name as! String)
                                let data = NSData(contentsOf: URL(string: name as! String)!)
                                self.imgArray.append(UIImage(data: data as! Data)!)
                            }
    
                        }
                    }
    
    
                    OperationQueue.main.addOperation({
                        self.tableView.delegate = self as? UITableViewDelegate
                        self.tableView.dataSource = self
                        self.tableView.reloadData()
    
                    })
                }
    
            }
        })
    
    
         task.resume()
    }
    

    }

  • 共有1个答案

    董俊晖
    2023-03-14

    在您的代码中添加以下代码。

        let urlConfig = URLSessionConfiguration.default
        urlConfig.requestCachePolicy = .reloadIgnoringLocalCacheData
        urlConfig.urlCache = nil
    
        let session = URLSession(configuration: urlConfig)
    
        let task = session.dataTask(with: url!, completionHandler: {(data, response, error) -> Void in
    
     类似资料:
    • Progressive Web Apps(PWA) 是一项融合 Web 和 Native 应用各项优点的解决方案。我们可以利用其支持离线功能的特点,让我们的网站可以在信号差或者离线状态下正常运行。 要使用它也非常容易。 创建 serviceWorker 这里已经整理好了一份代码,你只需要在网站根目录下创建一个 sw.js 文件,并粘贴下面的代码。 sw.js /* ================

    • 使用google play服务,我们可以获得,它们使用融合的位置提供程序来检索设备最后已知的位置。使用change location,我可以设置know从谷歌文档中获取当前位置 一旦连接到Google Play services和location services API,就可以获得用户设备的当前位置设置 所以我的问题是,如果我没有连接到网络(互联网连接),我可以使用用户的最新位置而不是最后一个位

    • 我已经在windows 7上安装了janalyiler 9,我正在尝试以离线模式远程分析在远程linux上运行的JVM。 我在JVM参数中添加了JVM参数,如下所示。并复制了二进制文件和配置文件。将xml放入linux机箱。 现在,当我启动服务器时,我收到一个分段错误,它会转储核心,日志如下 1)在使用图形用户界面的在线模式下,服务器启动,我可以获取配置文件。然而,当服务器启动时,我将Janaly

    • 我正在尝试使用ControllerJavaAPI,基于示例,分析以离线模式在Weblogic上运行的应用程序。 我的问题是。虽然控制器未创建jps文件。saveSnapshot()无误退出。 > 我创建了一个会话配置,当我在GUI中附加到进程时,它运行良好。 我将config.xml文件从复制到工作目录。 我使用以下行更新了我的服务的服务器启动中的JVM参数: -代理路径:/home/alex/j

    • 问题内容: 我目前有一个程序可以在单线程模式下读取文件(非常大)并创建搜索索引,但是在单线程环境下建立索引的时间太长。 现在,我正在尝试使其在多线程模式下工作,但不确定实现该目标的最佳方法。 我的主程序创建一个缓冲的读取器,并将实例传递给线程,并且线程使用缓冲的读取器实例读取文件。 我认为这并不符合预期,而是每个线程一次又一次地读取同一行。 有没有一种方法可以使线程仅读取其他线程未读取的行?我需要

    • 问题内容: 我正在尝试将响应数组和响应数组转换为JSON格式。我已经试过被贴在SO和其他网站一样,所有的答案WEB1,web2的增加,然后 但我一直都想与文本格式的输出。有人可以帮我解决这个问题吗? 助手类: 我的控制器: 我尝试打印,它看起来像这样: Json输出:(html / text) 问题答案: 组 在控制器的动作之前。