Alamofire Error Domain=NSURLErrorDomain Code=-999 "abgesagt"
Ich habe bereits erfolgreich bekam Schlüsselbund für mein token und der übergabe an AccessTokenAdapter Klasse unten dargestellt.
http127.0.0.1:8000/api2/Projekte/?format=json übergeben projectsURL.
class AccessTokenAdapter: RequestAdapter {
private let accessToken: String
init(accessToken: String) {
self.accessToken = accessToken
}
func adapt(_ urlRequest: URLRequest) throws -> URLRequest {
var urlRequest = urlRequest
// print("JWT \(accessToken)")
urlRequest.setValue("JWT \(accessToken)", forHTTPHeaderField: "Authorization")
return urlRequest
}
}
let sessionManager = SessionManager()
sessionManager.adapter = AccessTokenAdapter(accessToken: self.keychain["token"]!)
sessionManager.request(self.projectsURL, method: .get, encoding: JSONEncoding.default).responseJSON{ response in
switch response.result {
case .success:
print("yey I made it")
case .failure(let error):
print(error)
}
}
jedoch aus drucken(Fehler), mein Xcode zeigt Fehler wie
Error Domain=NSURLErrorDomain Code=-999 "abgebrochen" UserInfo={NSErrorFailingURLKey=http://127.0.0.1:8000/api2/projects/?format=json, NSLocalizedDescription=abgebrochen, NSErrorFailingURLStringKey=http127.0.0.1:8000/api2/Projekte/?format=json}
Irgendwelche Ideen?
Alamofire 4.0
Schlüsselanhänger
Xcode 8.1
Swift3
Mit JWT für die Authentifizierung
Mit Postboten mit header, key = "Authentication", Wert = "JWT (token generiert hier)" funktioniert gut
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie sessionManager ein let konstant, es wird nicht länger Leben als die, die es umfasst-Funktion, so ist die Sitzung beendet, sobald der manager ist freigegeben.
Dieses Problem zu beheben, stellen Sie sessionManager länger Leben. Zum Beispiel in meinem Fall habe ich die class-Eigenschaft:
}
Die Lösung könnte anders sein, je nach Ihrer situation, aber die Idee ist, zu halten sessionManager lebendig, bis die Netzwerk-request endet.
Einfach die Methode invalidate nach der Aufgabe fertig sind, bedeutet
session.finishTasksAndInvalidate()
Funktioniert alles Super.
Einfach gelöst. Sieht aus wie es erforderlich ist, um httpmethod vorher.
Falls andere in dieser so gut wie ich und es war nicht nur ein https-Problem oder andere Antwort gegeben, in der SO viele andere Beiträge, die ich gefunden habe, war ich immer das gefunden und die Ursache zu einer controller-das war eine Anfrage, aber der controller wurde nicht gezeigt zu werden. Ein bisschen wie, wenn Sie haben einige controller, der wird nur auf die spezifischen Bedingungen und es selbst macht einen Antrag, der durchgeführt wird, in der viewWillAppear oder andere. Habe ich eine base-Klasse, die bestimmt, ob der Aufruf in der bedingten controller versuchen soll, die Anforderung oder nicht. Diese behoben das problem für mich.