2017-03-13 5 views
-1

Ich benutze Uber Api in meiner App. Es gibt ein Problem, das auftritt, wenn ich versuche, eine Fahrt zu buchen. Ich bekomme einen httpStatus 400 Fehler. Laut ihrer Dokumentation könnte dies auf eine Vielzahl von Faktoren zurückzuführen sein. enter image description hereKönnen wir die HttpStatus-Code-Fehlerbeschreibung in swift bekommen?

Wie kann ich durch Statuscode (Immer "400") wissen, welche Beschreibung der gegebenen Typen es verursacht ?.

Mein Code jetzt:

if let httpstatuscode = response as? NSHTTPURLResponse 
     { 
      if (error != nil) 
      { 
       print("Error : \(error?.localizedDescription)") 
      } 
      else if httpstatuscode.statusCode != 202 && httpstatuscode.statusCode != 409 
      { 

       print("Status Code\(httpstatuscode.statusCode)") 

       dispatch_async(dispatch_get_main_queue(), {() -> Void in 
        CommonViewController.alertViewUI("Alert", message: "Internal Server Error!") 
       }) 

      } 
      else if httpstatuscode.statusCode == 409 
      { 
       // self.getUberRideLive() 
       print("Status Code\(httpstatuscode.statusCode)") 
       CommonViewController.alertViewUI("Alert", message: "You are already on a ride!") 



      } 
+0

Sobald Sie Fehlercode '400' bekommen, können Sie überprüfen, um zu sehen, was den Fehler verursacht hat. Verwenden Sie Beseitigungstechnik, um die Möglichkeiten zu beseitigen (Sie hatten in Ihrem Beitrag erwähnt). Überprüfen Sie eins nach dem anderen und wenn Sie den Fehler nicht auf Null setzen können, können Sie eine Standardbehandlung verwenden. Beispiel: Überprüfen Sie, ob die E-Mail bestätigt ist und so weiter. – user1046037

+0

Ich habe keine Erfahrung mit der Uber-API, aber laut https://developer.uber.com/docs/riders/guides/errors hat die Fehlerreaktion einen JSON-Text, der sowohl maschinen- als auch menschenlesbare Fehlermeldungen enthält. –

+0

Es gibt tatsächlich viele Statuscodes. Jeder Statuscode enthält mehr als eine Beschreibung. Wie könnte ich es überprüfen? –

Antwort

2

Sie können die Verwendung localizedString(forStatusCode:)method von HTTPURLResponseclass

Dies gilt, wenn Sie Beschreibungen für HTTP erros erhalten möchten, wenn Sie Beschreibung von UBER Fehler wollen, sollten Sie Sehen Sie sich die JSON-Antwort von der UBER-Operation an.

Dann sollte Ihr Code sieht ... wie

let message: String = HTTPURLResponse.localizedString(forStatusCode: httpstatuscode.statusCode) 
Verwandte Themen