Toplu İstek Gönderme

Uygulamanızın oluşturduğu her HTTP bağlantısı belirli miktarda ek yüke neden olur. Bu kitaplık toplu işlemeyi destekler, kullanın. Gruplandırmayı kullanmak isteyebileceğiniz durumlara örnekler:

  • Yapmanız gereken çok sayıda küçük istek var ve HTTP isteği ek yükünü en aza indirmek istiyorsunuz.
  • Bir kullanıcı, uygulamanız çevrimdışıyken verilerde değişiklik yaptı. Bu nedenle uygulamanızın, yerel verilerini sunucuyla senkronize etmesi gerekir çok sayıda güncelleme ve silme göndererek.

Not: Tek bir toplu istekte en fazla 1.000 arama yapabilirsiniz. Bundan daha fazla çağrı yapmanız gerekiyorsa birden çok toplu istek kullanın.

Not: medya yükleme nesnesini ifade eder.

Ayrıntılar

Örnek oluşturarak toplu istekler oluşturursunuz. BatchRequest nesnesini ifade edin ve ardından, yürütmek istediğiniz her istek için Queue yöntemini çağırın. Her istekle birlikte, uygulamanız yanıt vermesi gerekir. Geri çağırma işlevinin bağımsız değişkenleri şunlardır:

içerik
İçerik yanıtı veya istek başarısız olursa null.
hata
Hata veya istek başarılı olduysa null.
indeks
İsteğin dizini.
mesaj
Tüm üst bilgileri ve içeriğini içeren tam HTTP mesajı.
ziyaret edin.
'nı inceleyin. İstekleri ekledikten sonra, ExecuteAsync yöntemini kullanın.

Aşağıdaki kod snippet'inde, iki API isteği tek bir HTTP isteğinde toplanır. ve her API isteği bir geri çağırma sağlanır:

UserCredential credential;
using (var stream = new FileStream("client_secrets.json", FileMode.Open, FileAccess.Read))
{
    credential = await GoogleWebAuthorizationBroker.AuthorizeAsync(
        GoogleClientSecrets.Load(stream).Secrets,
        new[] { CalendarService.Scope.Calendar },
        "user", CancellationToken.None, new FileDataStore("Calendar.Sample.Store"));
}

// Create the service.
var service = new CalendarService(new BaseClientService.Initializer()
    {
        HttpClientInitializer = credential,
        ApplicationName = "Google Calendar API Sample",
    });

// Create a batch request.
var request = new BatchRequest(service);
request.Queue<CalendarList>(service.CalendarList.List(),
     (content, error, i, message) =>
     {
         // Put your callback code here.
     });
request.Queue<Event>(service.Events.Insert(
     new Event
     {
         Summary = "Learn how to execute a batch request",
         Start = new EventDateTime() { DateTime = new DateTime(2014, 1, 1, 10, 0, 0) },
         End = new EventDateTime() { DateTime = new DateTime(2014, 1, 1, 12, 0, 0) }
     }, "YOUR_CALENDAR_ID_HERE"),
     (content, error, i, message) =>
     {
         // Put your callback code here.
     });
// You can add more Queue calls here.

// Execute the batch request, which includes the 2 requests above.
await request.ExecuteAsync();