ارسال درخواست های دسته ای
با مجموعهها، منظم بمانید
ذخیره و طبقهبندی محتوا براساس اولویتهای شما.
هر اتصال HTTP که برنامه شما ایجاد می کند، منجر به مقدار معینی سربار می شود. این کتابخانه از دسته بندی پشتیبانی می کند تا به برنامه شما اجازه دهد چندین تماس API را در یک درخواست HTTP قرار دهد. نمونه هایی از موقعیت هایی که ممکن است بخواهید از دسته بندی استفاده کنید:
- شما درخواست های کوچک زیادی دارید و می خواهید سربار درخواست HTTP را به حداقل برسانید.
- زمانی که برنامه شما آفلاین بود، کاربر تغییراتی در دادهها ایجاد کرد، بنابراین برنامه شما باید دادههای محلی خود را با ارسال بهروزرسانیها و حذفهای زیادی با سرور همگامسازی کند.
توجه : شما به 1000 تماس در یک درخواست دستهای محدود میشوید. اگر نیاز به تماس بیشتر از آن دارید، از چندین درخواست دسته ای استفاده کنید.
توجه : شما نمی توانید از یک شیء آپلود رسانه در یک درخواست دسته ای استفاده کنید.
جزئیات
شما درخواست های دسته ای را با نمونه سازی یک شی BatchRequest
و سپس فراخوانی متد Queue
برای هر درخواستی که می خواهید اجرا کنید ایجاد می کنید. با هر درخواست، یک تماس پاسخ ارسال کنید تا زمانی که برنامه شما پاسخ آن درخواست را دریافت می کند، با شما تماس گرفته شود. آرگومان های تابع callback عبارتند از:
- محتوا
- پاسخ محتوا، یا در صورت عدم موفقیت درخواست،
null
. - خطا
- خطا یا در صورت موفقیت درخواست
null
. - شاخص
- نمایه درخواست فردی
- پیام
- پیام کامل 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 License است. نمونه کدها نیز دارای مجوز Apache 2.0 License است. برای اطلاع از جزئیات، به خطمشیهای سایت Google Developers مراجعه کنید. جاوا علامت تجاری ثبتشده Oracle و/یا شرکتهای وابسته به آن است.
تاریخ آخرین بهروزرسانی 2025-07-24 بهوقت ساعت هماهنگ جهانی.
[null,null,["تاریخ آخرین بهروزرسانی 2025-07-24 بهوقت ساعت هماهنگ جهانی."],[[["\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```"]]