Gửi yêu cầu hàng loạt
Sử dụng bộ sưu tập để sắp xếp ngăn nắp các trang
Lưu và phân loại nội dung dựa trên lựa chọn ưu tiên của bạn.
Mỗi kết nối HTTP mà ứng dụng của bạn tạo ra đều dẫn đến một mức hao tổn nhất định.
Thư viện này hỗ trợ việc phân lô,
để cho phép ứng dụng của bạn đặt nhiều lệnh gọi API vào một yêu cầu HTTP duy nhất.
Ví dụ về những trường hợp mà bạn có thể cần sử dụng tính năng phân lô:
-
Bạn cần thực hiện nhiều yêu cầu nhỏ và muốn giảm thiểu hao tổn yêu cầu HTTP.
-
Một người dùng đã thực hiện thay đổi đối với dữ liệu trong khi ứng dụng của bạn không kết nối mạng,
vì vậy, ứng dụng của bạn cần đồng bộ hoá dữ liệu cục bộ với máy chủ
bằng cách gửi rất nhiều bản cập nhật
và xoá nhiều nội dung.
Lưu ý: Mỗi yêu cầu theo lô chỉ được có tối đa 1.000 lệnh gọi.
Nếu bạn cần thực hiện nhiều lệnh gọi hơn số lượng đó, hãy sử dụng nhiều yêu cầu hàng loạt.
Lưu ý: Bạn không thể sử dụng
tải nội dung nghe nhìn lên
trong một yêu cầu hàng loạt.
Chi tiết
Bạn tạo yêu cầu hàng loạt bằng cách tạo thực thể một
BatchRequest
rồi gọi phương thức Queue
cho mỗi yêu cầu mà bạn muốn thực thi.
Với mỗi yêu cầu, hãy truyền một lệnh gọi lại để gọi khi ứng dụng của bạn nhận được
nội dung phản hồi cho yêu cầu đó.
Các đối số của hàm callback là:
- nội dung
- Phản hồi nội dung hoặc
null
nếu yêu cầu không thành công.
- error
- Lỗi hoặc
null
nếu yêu cầu thành công.
- index
- Chỉ mục của yêu cầu riêng lẻ.
- tin nhắn
- Thông báo HTTP đầy đủ bao gồm tất cả tiêu đề và nội dung.
Sau khi thêm yêu cầu, bạn gọi hàm
ExecuteAsync
để tạo yêu cầu.
Trong đoạn mã sau,
hai yêu cầu API được phân thành
một yêu cầu HTTP duy nhất,
và mỗi yêu cầu API được cung cấp một lệnh gọi lại:
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();
Trừ phi có lưu ý khác, nội dung của trang này được cấp phép theo Giấy phép ghi nhận tác giả 4.0 của Creative Commons và các mẫu mã lập trình được cấp phép theo Giấy phép Apache 2.0. Để biết thông tin chi tiết, vui lòng tham khảo Chính sách trang web của Google Developers. Java là nhãn hiệu đã đăng ký của Oracle và/hoặc các đơn vị liên kết với Oracle.
Cập nhật lần gần đây nhất: 2025-07-26 UTC.
[null,null,["Cập nhật lần gần đây nhất: 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```"]]