Can I somehow do a synchronous HTTP request via NSURLSession in Swift

前端 未结 5 1351
有刺的猬
有刺的猬 2020-11-29 01:01

Can I somehow do a synchronous HTTP request via NSURLSession in Swift?

I can do an asynchronous request via the following code:

if let u         


        
5条回答
  •  盖世英雄少女心
    2020-11-29 01:31

    Be careful with synchronous requests because it can result in bad user experience but I know sometimes its necessary. For synchronous requests use NSURLConnection:

    func synchronousRequest() -> NSDictionary {
    
            //creating the request
            let url: NSURL! = NSURL(string: "exampledomain/...")
            var request = NSMutableURLRequest(URL: url)
            request.HTTPMethod = "GET"
            request.addValue("application/json", forHTTPHeaderField: "Content-Type")
    
    
            var error: NSError?
    
            var response: NSURLResponse?
    
            let urlData = NSURLConnection.sendSynchronousRequest(request, returningResponse: &response, error: &error)
    
            error = nil
            let resultDictionary: NSDictionary = NSJSONSerialization.JSONObjectWithData(urlData!, options: NSJSONReadingOptions.MutableContainers, error: &error) as! NSDictionary
    
            return resultDictionary
        }
    

提交回复
热议问题