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.
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();