NSURLSessionUploadTask Nedir ve Nasıl Oluşturulur?

NSURLSessionUploadTask Nedir ve Nasıl Oluşturulur?

NSURLSessionUploadTask, iOS'ta HTML etiketleri olmadan dosyaları yüklemek için ideal bir çözümdür Bu yazılım, nasıl kullanılacağına ilişkin ayrıntılı bilgileri içerir İşte NSURLSessionUploadTask nedir ve nasıl oluşturulur hakkında bilmeniz gerekenler!

NSURLSessionUploadTask Nedir ve Nasıl Oluşturulur?

Bir sunucuya dosya veya veri yüklemek için kullanılan yöntemlerden biri olan NSURLSessionUploadTask, bir NSURLSessionTask alt sınıfıdır. Bu makalede, NSURLSessionUploadTask'in özellikleri ve nasıl oluşturulacağı hakkında bilgi edineceksiniz.

Başlamadan önce NSURLSession'in ne olduğunu anlamak önemlidir. NSURLSession, bir URL yükleyicisi ve indiricisi ile işlem yapmak için bir nesne artışı sağlayan bir iOS ve macOS framework'üdür. Bir sunucudan veri indirmek için NSURLSessionDownloadTask kullanılırken; sunucuya veri yüklemek için NSURLSessionUploadTask kullanılır.


NSURLSession Nedir?

NSURLSession, iOS ve macOS için bir framework'tür. Bu çerçeve, URL yükleyicisi ve indiricisi ile işlem yapmak için farklı nesnelerin artışını sağlar. NSURLSession, kullanıcılara URL'ler ve bunları yüklemek için gerekli tüm yöntemleri sağlayarak, uygulamaların internet erişimine ihtiyaç duymasını kolaylaştırır.

Bu framework, geliştiricilerin kolay bir şekilde donanımı kullanarak hızlı ve güvenilir bir şekilde veri ve dosya aktarmasını sağlar. Basit bir kontrol yapısı ve zengin özelliklerle birlikte, NSURLSession hizmetleri sunuculara veri yükleyebilmeniz için size ihtiyacınız olan tüm araçları sunar.


NSURLSessionUploadTask Nedir?

Bir sunucuya dosya veya veri yüklemek için kullanılan bir NSURLSessionTask alt sınıfı olan NSURLSessionUploadTask, büyük dosya veya veri yüklemeleriyle uğraşan uygulamalar için önemlidir. NSURLSessionUploadTask, NSURLSession ile birlikte kullanılarak, yükleme işlemini yönetir ve herhangi bir kesinti durumunda verinin bozulmasını önlemek için otomatik olarak yeniden deneme yapar.


NSURLSessionUploadTask Oluşturma

NSURLSessionUploadTask, bir sunucuya dosya veya veri yüklemek için kullanılan bir NSURLSessionTask alt sınıfıdır. Bu görevi yerine getirebilmek için öncelikle bir NSURLSession nesnesi oluşturmanız ve ardından bu nesne üzerinden birbildirim sağlamanız gerekiyor.

Bir NSURLSession nesnesi oluşturmak için iki adımı takip etmeniz gerekiyor.

NSURLSession'ı kullanmak için önce bir URLSessionConfiguration nesnesi oluşturmanız gerekir. Bu nesnenin, NSURLSession'ın davranışlarını tanımlayan konfigürasyona sahip olduğunu unutmayın. Bunlar, arabelleğe alınacak boyut, URL kümesinin altındaki maksimum aynı anda açık bağlantı sayısı ve kimlik doğrulamasını sağlama yöntemleri gibi değerleri içerir.

NSURLSession nesnenizi oluşturmak için URLSessionConfiguration nesnenizi kullanarak yapılandırmanız gerekiyor. Bu sırada URLSessionDelegate, NSURLSessionTaskDelegate ve NSURLSessionDataDelegate yöntemlerinin tanımlandığı bir sınıf oluşturmanız da gerekiyor. Bu yöntemler, yükleme görevinin ilerlemesiyle ilgili bilgileri almanıza, hataları yönetmenize ve yüklemenin başarı durumunu belirlemenize yardımcı olur.

URLSession nesnenizi kullanarak bir NSURLSessionUploadTask nesnesi oluşturabilir ve göreve başlayabilirsiniz. Burada yapmanız gereken tek şey, URL yüklemesi için bir istek oluşturmaktır. Bununla birlikte, bu görevi daha da özelleştirmek için farklı seçenekleri de kullanabilirsiniz.

NSURLSessionUploadTask, bir sunucuya dosya veya veri yüklemek için kullanılan bir NSURLSessionTask alt sınıfıdır. Bir görev yürütmek için öncelikle bir NSURLSession nesnesi oluşturmanız ve ardından bu nesne üzerinden birbildirim sağlamanız gerekiyor. Bu üç adım, sırasıyla URLSessionConfiguration nesnesi oluşturma, URLSession nesnesi oluşturma ve NSURLSessionUploadTask nesnesi oluşturma aşamalarını içerir.


Adım 1: URLSessionConfiguration Oluşturma

NSURLSessionUploadTask oluşturmak için bir NSURLSession nesnesine ihtiyacınız var. Bu nesne üzerinden bildirim sağlayabilirsiniz. Bu nedenle, ilk olarak bir URLSessionConfiguration nesnesi oluşturmakla başlayın. Bu nesne, URL yüklemeleri için kullanılacak yapılandırmaları içerecektir. Bu adım, yüksek seviyeli bir API kullanırken zaten yapılmış olabilir. Ancak, adım adım yönergelerle yaklaşmak her zaman yararlıdır.

NSURLSessionConfiguration, çeşitli seçenekler de dahil olmak üzere çeşitli yapılandırma seçenekleri sağlar. Bu seçenekler, belirli bir yükleme görevi için yüklenen dosyanın türüne ve boyutuna, aynı anda kaç tane yükleme yapabileceğinize ve bir örneğin ne kadar süre bekleyeceğine kadar değişebilir.

NSURLSessionConfiguration nesnesini oluşturmak için aşağıdaki tabloya göre yapın:

Properti Adı Açıklama
defaultSessionConfiguration HTTP/HTTPS istekler için varsayılan yapılandırma
ephemeralSessionConfiguration HTTP/HTTPS istekler için işlem tamamlandığında yapılandırmayı kaydeden geçici bir yapılandırma oluşturur
backgroundSessionConfigurationWithIdentifier: Uygulama herhangi birinin çalıştırılmasa bile arka planda çalışırken yapılandırma sağlar. Bu, uzun vadeli görevler için idealdir.

Yukarıdaki yapılandırma seçeneklerinden birini kullanarak NSURLSessionConfiguration nesnesini oluşturabilirsiniz. Örneğin, varsayılan bir yapılandırma seçeneği kullanarak bir nesne oluşturmak için aşağıdaki kodu kullanabilirsiniz:

```swiftlet configuration = URLSessionConfiguration.default```

Bu kod, varsayılan yapılandırmayı kullanarak bir nesne oluşturacaktır. Daha sonra, URLSession nesnesini yapılandırırken bu nesneyi kullanabilirsiniz.


Adım 2: URLSession Oluşturma

NSURLSession oluşturmak için temel adımlardan ikincisi, NSURLSession nesnesini oluşturmak ve URLSessionConfiguration nesnesini kullanarak yapılandırmaktır. Bu adımda, NSURLSession nesnesi, yapılandırmanızı kullanarak oluşturulur. Bunun için, NSURLSessionConfiguration nesnesini oluşturduğunuzda, bu nesneyi URLSession nesnesiyle birleştirmelisiniz.

Bunun için, aşağıdaki kod parçasını kullanabilirsiniz:

let sessionConfig = URLSessionConfiguration.defaultlet session = URLSession(configuration: sessionConfig)

Yukarıdaki kod parçasında, önce varsayılan NSURLSessionConfiguration nesnesi oluşturulur ve daha sonra bu nesneyi kullanarak bir NSURLSession nesnesi oluşturulur. Böylece, yapınız hazır hale getirilir ve istekleri yapmak için kullanılabilir hale gelirsiniz.


Adım 3: NSURLSessionUploadTask Oluşturma

NSURLSessionUploadTask oluşturmak için önce bir NSURLSession nesnesi oluşturmalısınız ve ardından bu nesne üzerinden bir bildirim sağlamalısınız. Adım 1'de oluşturduğunuz URLSessionConfiguration nesnesiyle birlikte artık URLSession nesnesi oluşturma zamanı geldi. URLSession nesnenizi oluşturun ve URLSessionConfiguration nesnenizi kullanarak yapılandırın. URLSession nesnenizi kullanarak bir NSURLSessionUploadTask nesnesi oluşturun ve başlatın. İşte bu kadar basit!

Bir NSURLSessionUploadTask nesnesi oluşturduktan sonra, yüklemeyi başlatmak için -resume yöntemini çağırmanız gerekir. Daha önce belirtildiği gibi, NSURLSessionUploadTask nesnesini oluştururken yükleme için veri sağlama işlemi de gerçekleştirebilirsiniz. Verilerinizi hazırladıktan sonra, yüklemeyi başlatmak için rahatlıkla -resume yöntemini çağırabilirsiniz.

NSURLUploadSessionTask nesnesinin diğer alt sınıfları gibi, NSURLSessionUploadTask nesnesinin de erişim aşaması, hazırlama aşaması, yükleme aşaması, tamamlanma aşaması ve görev iptal etme aşaması olmak üzere 5 temel aşaması vardır. Ancak, NSURLSessionUploadTask nesnesinin farklı olan özelliği, yükleme işlemi ilerledikçe size geri bildirim alanı sağlamasıdır. Bu sayede yükleme işleminin nerede takıldığını veya hataların neden kaynaklandığını anlayabilirsiniz.


NSURLSessionUploadTask Aşamaları

NSURLUploadSessionTask, bir sunucuya dosya veya veri yükleyen NSURLSessionUploadTask nesnesinin beş temel aşaması vardır:

  • Erişim aşaması: Bu aşamada, yükleme işlemi için güvenli bir URL'ye erişmek gibi işlemler yapılır.
  • Hazırlama aşaması: Bu aşama, yüklenen verilerin boyutunu belirlemek ve yükleme işlemi için gerekli diğer ayarları yapmak gibi işlemler içerir.
  • Yükleme aşaması: Bu aşama, yükleme işleminin gerçekleştirildiği ana aşamadır. Veriler sunucuya yollandığı için bu aşama oldukça önemlidir.
  • Tamamlanma aşaması: Bu aşama, yükleme işleminin başarıyla tamamlandığını veya bir hata oluştuğunu bildiren bir sonuç sağlar.
  • Görev iptal etme aşaması: Bu aşama, yükleme işlemi sırasında kullanıcının işlemi iptal etmesi durumunda kullanılır. Bu, işlemi durdurmak ve kaynakları geri almak için gereklidir.

NSURLUploadSessionTask'ın bu aşamalarından herhangi birinde bir hata meydana gelirse, uygulamaya bağlı olarak işlem yeniden başlatılabilir veya tamamen iptal edilebilir. Bu nedenle, her aşama dikkatli bir şekilde yönetilmelidir, böylece yol boyunca herhangi bir hata minimuma indirilebilir ve işlem başarıyla tamamlanabilir.


yüksek seviyeli AFNetworking kütüphanesi kullanarak NSURLSessionUploadTask Oluşturma

AFNetworking, temel olarak NSURLSession çerçevesi üzerine inşa edilmiştir ve bu alternatif yöntem ile URLSessionUploadTask oluşturmanızı sağlar. Bunu yapmak için, öncelikle projenize AFNetworking kütüphanesini dahil etmeniz gerekir.

  • AFNetworking'i projenize dahil edin.
  • NSURLSessionConfiguration nesnesi oluşturarak başlayın.
  • NSURLSession nesnenizi oluşturun ve URLSessionConfiguration nesnenizi kullanarak yapılandırın.
  • AFHTTPSessionManager nesnesini kullanarak NSURLSessionUploadTask nesnenizi oluşturun ve başlatın.

Bir örnek kullanarak, nasıl yapılacağına bakalım:

AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];NSDictionary *params = @{@"name": @"John",                         @"password": @"123456"};[manager POST:@"http://example.com"   parameters:params     headers:nilconstructingBodyWithBlock:^(id formData) {         NSData *fileData = UIImageJPEGRepresentation(image, 1.0);         [formData appendPartWithFileData:fileData                                     name:@"image"                                 fileName:@"image.jpg"                                 mimeType:@"image/jpeg"];     }     progress:nil      success:^(NSURLSessionDataTask *task, id responseObject) {         // success operations     }      failure:^(NSURLSessionDataTask *task, NSError *error) {         // failure operations     }];

Bu yöntem hızlı, kolay ve AFNetworking tarafından sağlanan güçlü özellikler sayesinde avantajlıdır. Yüksek seviye metodlar arasında, yükleme işleminin ayrıntılarına girmeden, özelleştirilebilir parametrelerle ihtiyaçlarınıza uygun seçenekler de mevcuttur.