Ogni connessione HTTP effettuata dall'applicazione comporta un certo overhead. Questa libreria supporta i processi batch, per consentire alla tua applicazione di inserire diverse chiamate API in un'unica richiesta HTTP. Esempi di situazioni in cui è possibile utilizzare la gestione in batch:
- Devi effettuare molte richieste di piccole dimensioni e vorresti ridurre al minimo l'overhead delle richieste HTTP.
- Un utente ha apportato modifiche ai dati mentre la tua applicazione era offline quindi l'applicazione deve sincronizzare i dati locali con il server inviando molti aggiornamenti ed eliminazioni.
Nota: non puoi superare le 1000 chiamate per una singola richiesta batch. Se devi effettuare un numero maggiore di chiamate, utilizza più richieste batch.
Nota: non puoi utilizzare una proprietà caricamento di contenuti multimediali in una richiesta batch.
Dettagli
Puoi creare richieste batch creando un'istanza
BatchRequest
e quindi chiamando il metodo Queue
per ogni richiesta da eseguire.
A ogni richiesta, inoltra un callback per farti chiamare quando la tua applicazione riceve
la risposta a tale richiesta.
Gli argomenti della funzione di callback sono:
- contenuti
- La risposta dei contenuti o
null
se la richiesta non è andata a buon fine. - errore
- L'errore o
null
se la richiesta è andata a buon fine. - indice
- L'indice della singola richiesta.
- messaggio
- Il messaggio HTTP completo, che include tutte le intestazioni e i contenuti. di Gemini Advanced.
ExecuteAsync
per effettuare le richieste.
Nel seguente snippet di codice due richieste API vengono raggruppate in una singola richiesta HTTP, e a ogni richiesta API viene fornito un callback:
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();