2016-09-16 4 views
0

Ich möchte eine API aufrufen und es ist ein Teil meiner App, aber ich möchte sicherstellen, dass ich den Statuscode der Website, die ich aufrufen (um Laufzeitfehler zu vermeiden) bekommen. Ich kann den Statuscode für URLResponse nicht abrufen, aber ich kann ihn für HTTPURLResponse abrufen. Wie benutze ich letzteres anstelle des ersteren?Verwenden Sie HTTPURLResponse anstelle von URLResponse

let requestURLString = "my_http_url" 
    let requestURL = URL(string: requestURLString) 
    let config = URLSessionConfiguration.default 
    let session = URLSession(configuration: config) 
    let ETAreq = session.dataTask(with: requestURL!) 
    { 

     (data, response (this is the URLResponse), error) in 

     if error == nil 
     { 

      //switch (this is where I will put switch of status code) 

     } 

    } 

Antwort

0

Obwohl, und HTTPURLResponse sind mit dem Verlust NS -prefix umbenannt. Sie sind immer noch Klassen und HTTPURLResponse ist eine Unterklasse von .

HTTPURLResponse

Sie können as? oder as! verwenden:

if 
     error == nil, 
     let httpResponse = response as? HTTPURLResponse 
    { 
     switch httpResponse.statusCode { 
     case 200: 
      //... 
      break 
     //... 
     default: 
      break 
     } 
    } else { 
     //error case here... 
    } 
+0

Dank es sehr viel tatsächlich funktioniert! –

Verwandte Themen