Google.Apis cung cấp một factory để tạo ứng dụng khách HTTP với IWebProxy. Truyền nó khi xây dựng dịch vụ được tạo:

var proxy = new System.Net.WebProxy("http://proxy.example:8080");
proxy.Credentials = new System.Net.NetworkCredential(
    proxyUser, proxyPassword);

using var youtube = new Google.Apis.YouTube.v3.YouTubeService(
    new Google.Apis.Services.BaseClientService.Initializer
    {
        ApplicationName = "ExampleVideoClient",
        ApiKey = apiKey,
        HttpClientFactory =
            Google.Apis.Http.HttpClientFactory.ForProxy(proxy)
    });

Ví dụ dùng quyền truy cập bằng khóa API cho một thao tác dữ liệu công khai được hỗ trợ. Bỏ qua việc gán thông tin đăng nhập proxy cho proxy không xác thực. Trong nhánh dữ liệu công khai đó, chọn một mục HTTP từ danh sách proxy HTTP nếu cho phép các trung gian công khai. Tài khoản proxy và khóa API phục vụ các điểm cuối khác nhau.

Trong Google.Apis 1.73.0, BaseClientService.Initializer.HttpClientFactory là hook tạo được hỗ trợ. ForProxy đặt proxy được cung cấp trên các ứng dụng khách do factory đó tạo. Việc xây dựng yêu cầu, tuần tự hóa và phần còn lại của pipeline SDK vẫn thuộc về dịch vụ.

Cấu hình điều này trước khi gửi yêu cầu. Thay thế MessageHandler.InnerHandler trên một ứng dụng khách đã tạo là không cần thiết cho trường hợp này và có thể loại bỏ các lựa chọn trình xử lý khác.

Thông tin đăng nhập OAuth có thể lấy hoặc làm mới token của nó thông qua cách bố trí HTTP riêng. Đặt factory của dịch vụ không quyết định cách thông tin đăng nhập được tạo riêng lấy token. Kiểm tra đường đi đó riêng nếu việc truy xuất token là thao tác thất bại qua proxy. Khi dùng GoogleCredential, giữ bản sao được định tuyến từ CreateWithHttpClientFactory cho công việc token đó.

Bài viết liên quan