שליחת בקשות בכמות גדולה
קל לארגן דפים בעזרת אוספים
אפשר לשמור ולסווג תוכן על סמך ההעדפות שלך.
כל חיבור HTTP שהאפליקציה שלכם יוצרת גורם לתקורה מסוימת.
הספרייה הזו תומכת בקיבוץ באצווה של קריאות
כדי לאפשר לאפליקציה לבצע מספר קריאות ל-API בבקשת HTTP אחת.
דוגמאות למצבים שבהם כדאי להשתמש בקיבוץ באצווה של קריאות:
-
אתם צריכים לשלוח הרבה בקשות קטנות, ואתם רוצים לצמצם את התקורה של בקשות HTTP.
-
משתמש ביצע שינויים בנתונים בזמן שהאפליקציה לא הייתה מחוברת לאינטרנט,
כך שהאפליקציה צריכה לסנכרן את הנתונים המקומיים שלה עם השרת
על ידי שליחה של הרבה עדכונים ומחיקות.
הערה: הבקשה באצווה מוגבלת ל-1,000 קריאות.
אם צריך לבצע יותר קריאות, תוכלו להשתמש במספר בקשות באצווה.
הערה: לא ניתן להשתמש ב-
העלאת מדיה
בבקשה באצווה.
פרטים
כדי ליצור בקשות באצווה,
BatchRequest
ואז קריאה ל-method Queue
עבור כל בקשה שרוצים לבצע.
בכל בקשה, מעבירים קריאה חוזרת (callback) כדי שתישמע כשהאפליקציה מקבלת
את התשובה לבקשה הזו.
הארגומנטים של פונקציית הקריאה החוזרת הם:
- תוכן
- תגובה לתוכן, או
null
אם הבקשה נכשלה.
- error
- השגיאה, או
null
אם הבקשה הצליחה.
- index
- האינדקס של הבקשה הבודדת.
- הודעה
- הודעת ה-HTTP המלאה שכוללת את כל הכותרות והתוכן שלה.
אחרי הוספת הבקשות, אפשר לקרוא לפונקציה
ExecuteAsync
לביצוע הבקשות.
בקטע הקוד הבא,
שתי בקשות API מקובצות בבקשת HTTP אחת,
וכל בקשת API מספקת קריאה חוזרת:
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();
אלא אם צוין אחרת, התוכן של דף זה הוא ברישיון Creative Commons Attribution 4.0 ודוגמאות הקוד הן ברישיון Apache 2.0. לפרטים, ניתן לעיין במדיניות האתר Google Developers. Java הוא סימן מסחרי רשום של חברת Oracle ו/או של השותפים העצמאיים שלה.
עדכון אחרון: 2025-07-26 (שעון UTC).
[null,null,["עדכון אחרון: 2025-07-26 (שעון UTC)."],[[["\u003cp\u003eBatching allows you to combine multiple API calls into a single HTTP request to reduce overhead.\u003c/p\u003e\n"],["\u003cp\u003eThis is especially useful when dealing with many small requests or synchronizing data with numerous updates and deletes.\u003c/p\u003e\n"],["\u003cp\u003eBatch requests are limited to 1,000 calls; for larger volumes, use multiple batch requests.\u003c/p\u003e\n"],["\u003cp\u003eMedia uploads are not supported within batch requests.\u003c/p\u003e\n"],["\u003cp\u003eUtilize the \u003ccode\u003eBatchRequest\u003c/code\u003e object and its \u003ccode\u003eQueue\u003c/code\u003e method to structure and execute your batched API calls.\u003c/p\u003e\n"]]],[],null,["# Send Batch Requests\n\nEach HTTP connection that your application makes results in a certain amount of overhead.\nThis library supports batching,\nto allow your application to put several API calls into a single HTTP request.\nExamples of situations when you might want to use batching:\n\n- You have many small requests to make and would like to minimize HTTP request overhead.\n- A user made changes to data while your application was offline, so your application needs to synchronize its local data with the server by sending a lot of updates and deletes.\n\n\n**Note**: You're limited to 1,000 calls in a single batch request.\nIf you need to make more calls than that, use multiple batch requests.\n\n\n**Note** : You cannot use a\n[media upload](/api-client-library/dotnet/guide/media_upload)\nobject in a batch request.\n\nDetails\n-------\n\n\nYou create batch requests by instantiating a\n[`BatchRequest`](https://googleapis.dev/dotnet/Google.Apis/latest/api/Google.Apis.Requests.BatchRequest.html)\nobject and then calling the `Queue` method for each request you want to execute.\nWith each request, pass in a callback to be called when your application receives\nthe response to that request.\nThe callback function's arguments are:\n\ncontent\n: The content response, or `null` if the request failed.\n\nerror\n: The error, or `null` if the request succeeded.\n\nindex\n: The index of the individual request.\n\nmessage\n: The full HTTP message that includes all its headers and content.\nAfter you've added the requests, you call the `ExecuteAsync` method to make the requests.\n\n\u003cbr /\u003e\n\n\nIn the following code snippet,\ntwo API requests are batched into a single HTTP request,\nand each API request is supplied a callback: \n\n```gdscript\nUserCredential credential;\nusing (var stream = new FileStream(\"client_secrets.json\", FileMode.Open, FileAccess.Read))\n{\n credential = await GoogleWebAuthorizationBroker.AuthorizeAsync(\n GoogleClientSecrets.Load(stream).Secrets,\n new[] { CalendarService.Scope.Calendar },\n \"user\", CancellationToken.None, new FileDataStore(\"Calendar.Sample.Store\"));\n}\n\n// Create the service.\nvar service = new CalendarService(new BaseClientService.Initializer()\n {\n HttpClientInitializer = credential,\n ApplicationName = \"Google Calendar API Sample\",\n });\n\n// Create a batch request.\nvar request = new BatchRequest(service);\nrequest.Queue\u003cCalendarList\u003e(service.CalendarList.List(),\n (content, error, i, message) =\u003e\n {\n // Put your callback code here.\n });\nrequest.Queue\u003cEvent\u003e(service.Events.Insert(\n new Event\n {\n Summary = \"Learn how to execute a batch request\",\n Start = new EventDateTime() { DateTime = new DateTime(2014, 1, 1, 10, 0, 0) },\n End = new EventDateTime() { DateTime = new DateTime(2014, 1, 1, 12, 0, 0) }\n }, \"YOUR_CALENDAR_ID_HERE\"),\n (content, error, i, message) =\u003e\n {\n // Put your callback code here.\n });\n// You can add more Queue calls here.\n\n// Execute the batch request, which includes the 2 requests above.\nawait request.ExecuteAsync();\n```"]]