Ch Umer
Ch Umer

Reputation: 43

HTTP request in swift 3 Xcode 8.3

I am getting stuck with HTTP request.it did not show any error.compiler reads the first two lines and skip the code to "task.resume()".i am fetching data with same code on other view controller but it creats problem here

func getCustomers()
{
    let url = NSURL(string: "myURL.com")
    let task = URLSession.shared.dataTask(with: url! as URL) {
        (data, response, error) in

        guard let _:Data = data, let _:URLResponse = response  , error == nil else {
            print("error: \(String(describing: error))")

            return
        }
        do
        {
            self.getcustomersArray = [GetCustomers]()
            //JSON Parsing
            if let data = data,

                let json = try JSONSerialization.jsonObject(with: data) as? [String: Any]
            {
                let results = json["Result"] as? [[String : Any]]

                let getCustomersObject:GetCustomers = GetCustomers()
                for result in results!
                {
                    getCustomersObject.ActivityPrefix = (result["ActivityPrefix"] as? String)!
                    getCustomersObject.CustomerID = (result["CustomerID"] as? String)!
                    getCustomersObject.CustomerName = (result["CustomerName"] as? String)!
                    getCustomersObject.TFMCustomerID = (result["TFMCustomerID"] as? String)!
                    getCustomersObject.ShortName = (result["ShortName"] as? String)!
                    getCustomersObject.UserRights = (result["UserRights"] as? Int)!

                    self.totalCustomers += self.totalCustomers
                }
                self.customerName = getCustomersObject.CustomerName

            }
        }//end Do
        catch
        {

        }
    }

    task.resume()
}

Upvotes: 3

Views: 1254

Answers (1)

Saumil Shah
Saumil Shah

Reputation: 2349

Using Block GET/POST/PUT/DELETE:

 let request = NSMutableURLRequest(url: URL(string: "Your API URL here" ,param: param))!,
        cachePolicy: .useProtocolCachePolicy,
        timeoutInterval:"Your request timeout time in Seconds")
    request.httpMethod = "GET"
    request.allHTTPHeaderFields = headers as? [String : String] 

    let session = URLSession.shared

    let dataTask = session.dataTask(with: request as URLRequest) {data,response,error in
        let httpResponse = response as? HTTPURLResponse

        if (error != nil) {
         print(error)
         } else {
         print(httpResponse)
         }

        DispatchQueue.main.async {
           //Update your UI here
        }

    }
    dataTask.resume()

I think you dont mention line request.httpMethod = "GET"

Upvotes: 1

Related Questions