Skip to content

Setting Version and VersionPolicy header on httpRequests #2967

@SangeethaJanakiraman

Description

@SangeethaJanakiraman

By default, the http version used by Google is HTTP 1.1 ( I checked it by printing the response.Version) .
I have tried to set the version to 2.0 (as it has many advantages)

I was able to do it for Download request as below

var req = service.Files.Get(file.fileId);
req.ModifyRequest = AddHeader; //I set the Version and VersionPolicy on this callback.
var progress = await req.ExecuteAsStreamAsync DownloadAsync(fs);

But for batch request, if I set it on individual request, it is not getting honored.

BatchRequest _batch = new BatchRequest(service);
foreach (var file in files)
{
        var request = service.Files.Get(file.fileId);
        request.ModifyRequest = AddHeader;
        request.Fields = "*";
        _batch.Queue(request, response);
 }

Setting it on HttpClient level also doesnt seem to get honored.

var service = new DriveService(new BaseClientService.Initializer()
 {
     HttpClientFactory = GetHttpClientFactory(),
     HttpClientInitializer = ImpersonatedServiceCredential,
 });
 service.HttpClient.DefaultRequestVersion = new Version(2, 0); // Use HTTP/2
 service.HttpClient.DefaultVersionPolicy = HttpVersionPolicy.RequestVersionOrHigher;

Can you suggest how can I set the request version to 2.0 for all my requests ?

Metadata

Metadata

Assignees

Labels

priority: p3Desirable enhancement or fix. May not be included in next release.type: feature request‘Nice-to-have’ improvement, new feature or different behavior or design.

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions