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

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

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

ध्यान दें: एक बार में ज़्यादा से ज़्यादा 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();