So stornieren Sie eine URL-Sitzungs-Anfrage
Ich bin laden mehrere Bild-zu-server-Verwendung von convert image to base64 und Bild senden in einer API als parameter. Aber wenn wir die call-api wieder und dann wieder, wie zu stoppen api-Aufruf auf den button klicken. Ich benutze folgenden code zum Aufruf der API.
Vielen Dank im Voraus
let urlPath: String = "URL"
let url: URL = URL(string: urlPath)!
var request1 = URLRequest(url: url)
request1.httpMethod = "POST"
let stringPost="imgSrc=\(image)"
let data = stringPost.data(using: String.Encoding.utf8)
//print("data\(data)")
request1.httpBody=data
request1.timeoutInterval = 60
let _:OperationQueue = OperationQueue()
let task = session.dataTask(with: request1){data, response, err in
do
{
if data != nil
{
print("data\(String(describing: data))")
if let jsonResult = try JSONSerialization.jsonObject(with: data!, options: []) as? NSDictionary
{
DispatchQueue.main.async
{
print("json\(jsonResult)")
}
}
}
catch let error as NSError
{
DispatchQueue.main.async
{
print("error is \(error)")
print("error desc \(error.localizedDescription)")
}
}}
task.resume()
- Mögliche Duplikate von NSURLSession Aufgabe Abbrechen
- Möglich der doppelten stackoverflow.com/questions/23518690/...
Du musst angemeldet sein, um einen Kommentar abzugeben.
Machen das Objekt
task
als Globale variable, dann stornieren können Sie es überall mit:Alternativ, wenn das Objekt
session
ist einURLSession
Beispiel, können Sie Abbrechen, indem Sie:Wenn Sie nicht zulassen möchten, dass die API noch einmal anrufen, wenn es irgendwelche vorherigen download ist über die Fortschritte, die Sie tun können, wie folgt,
Machen Ihre Aufgabe(URLSessionDataTask Typ) variable als Globale variable in der Klasse, wie folgt,
Dann auf die Schaltfläche Aktion, wie unten durch überprüfung der task-download-status,
Können Sie machen, verwenden Sie folgenden Staaten wie ausgeführt, die durch URLSessionDataTask Klasse und der Aktion entsprechend, als pro Ihre Notwendigkeit,
Können Sie überprüfen, das Ergebnis Ihrer Aufgabe. Und wenn alles in Ordnung ist, können Sie
aber wenn nicht