GET request with parameters

前端 未结 2 2113
萌比男神i
萌比男神i 2020-12-19 23:05

Which way is recomed in swift 3 for GET with parameters ?

Example :

https://my-side.com/data?token=AS7F87SAD84889AD/

Thanks in ad

相关标签:
2条回答
  • 2020-12-19 23:15

    Well I'm handling my http requests like this:

    func getData(completionHandler: @escaping ((result:Bool)) -> ()) {
    
            // Asynchronous Http call to your api url, using NSURLSession:
            guard let url = URL(string: "https://my-side.com/data?token=AS7F87SAD84889AD/") else {
                print("Url conversion issue.")
                return
            }
    
            var request = URLRequest(url: url)
    
            request.httpMethod = "GET"
    
            URLSession.shared.dataTask(with: request, completionHandler: { (data, response, error) -> Void in
                // Check if data was received successfully
                if error == nil && data != nil {
                    do {
                        // Convert NSData to Dictionary where keys are of type String, and values are of any type
                        let json = try JSONSerialization.jsonObject(with: data!, options: JSONSerialization.ReadingOptions.mutableContainers) as! [String:AnyObject]
    
                        //do your stuff
    
                        completionHandler(true)
    
                    } catch {
                        completionHandler(false)
                    }
                }
                else if error != nil
                {
                    completionHandler(false)
                }
            }).resume()
        }
    
    0 讨论(0)
  • 2020-12-19 23:25

    Example how to use URLQueryItem for the requests.

    func getRequest(params: [String:String]) {
    
        let urlComp = NSURLComponents(string: "https://my-side.com/data")!
    
        var items = [URLQueryItem]()
    
        for (key,value) in params {
            items.append(URLQueryItem(name: key, value: value))
        }
    
        items = items.filter{!$0.name.isEmpty}
    
        if !items.isEmpty {
          urlComp.queryItems = items
        }
    
        var urlRequest = URLRequest(url: urlComp.url!)
        urlRequest.httpMethod = "GET"
        let config = URLSessionConfiguration.default
        let session = URLSession(configuration: config)
    
        let task = session.dataTask(with: urlRequest, completionHandler: { (data, response, error) in
        })
        task.resume()
    }
    
    
    getRequest(params: ["token": "AS7F87SAD84889AD"])
    
    0 讨论(0)
提交回复
热议问题