बैच अनुरोध भेजें

आपके ऐप्लिकेशन के हर एचटीटीपी कनेक्शन से कुछ ओवरहेड होता है. यह लाइब्रेरी बैच बनाने की सुविधा देती है, का इस्तेमाल, आपके ऐप्लिकेशन को एक ही एचटीटीपी अनुरोध में कई एपीआई कॉल करने की अनुमति देने के लिए किया जाता है. ऐसी स्थितियों के उदाहरण जिनमें आपको एक साथ कई फ़ाइलें अपलोड करनी होंगी:

  • आपके पास करने के लिए कई छोटे अनुरोध हैं और आप एचटीटीपी अनुरोध ओवरहेड कम करना चाहते हैं.
  • किसी उपयोगकर्ता ने आपका ऐप्लिकेशन ऑफ़लाइन होने पर, डेटा में बदलाव किए हैं, इसलिए आपके ऐप्लिकेशन को अपना स्थानीय डेटा सर्वर के साथ सिंक करने की ज़रूरत होती है हम बहुत सारे अपडेट भेजते और मिटाते हैं.

ध्यान दें: एक बार में ज़्यादा से ज़्यादा 1,000 कॉल के लिए अनुरोध किया जा सकता है. अगर आपको इससे ज़्यादा कॉल करने हैं, तो एक से ज़्यादा बैच रिक्वेस्ट का इस्तेमाल करें.

ध्यान दें: एक साथ कई अनुरोध करने के लिए, मीडिया अपलोड ऑब्जेक्ट का इस्तेमाल नहीं किया जा सकता.

विवरण

एक साथ कई अनुरोध बनाने के लिए, BatchRequest ऑब्जेक्ट को इंस्टैंशिएट करें. इसके बाद, हर उस अनुरोध के लिए Queue मेथड को कॉल करें जिसे आपको लागू करना है. हर अनुरोध के साथ, आपके ऐप्लिकेशन को अनुरोध मिलने पर, कॉलबैक में पास करें तो उस अनुरोध का जवाब दे दिया गया है. कॉलबैक फ़ंक्शन के आर्ग्युमेंट इस तरह के होते हैं:

कॉन्टेंट
अगर अनुरोध पूरा नहीं हो पाया है, तो कॉन्टेंट का जवाब या null.
गड़बड़ी
गड़बड़ी या अगर अनुरोध पूरा हुआ, तो null.
इंडेक्स
किसी खास अनुरोध का इंडेक्स.
मैसेज
पूरा एचटीटीपी मैसेज, जिसमें उसके सभी हेडर और कॉन्टेंट शामिल होते हैं.
अनुरोध जोड़ने के बाद, आप अनुरोध करने का ExecuteAsync तरीका.

नीचे दिए गए कोड स्निपेट में, दो एपीआई अनुरोधों को एक एचटीटीपी अनुरोध में बैच किया गया है, और हर एपीआई अनुरोध के लिए एक कॉलबैक दिया गया है:

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