0

Google ドライブと対話する Windows Phone 用の SDK を作成していますが、サーバーが gzip された応答を返すことができません。私のリクエストからわかるように、ここのドキュメントで簡単に言及しましたが、まだ生データしか取得していません。

リクエスト:

GET https://www.googleapis.com/drive/v2/files/ HTTP/1.1
Accept: */*
User-Agent: my program (gzip)
Authorization: Bearer [removed]
Accept-Encoding: gzip
Host: www.googleapis.com
If-None-Match: "PA40KOhMf9e-1Hypww_TkG8doNA/jgiBh3LdSV9a9DAu8kcM87C_SgA"
Connection: Keep-Alive

応答:

HTTP/1.1 200 OK
Expires: Fri, 13 Sep 2013 06:31:47 GMT
Date: Fri, 13 Sep 2013 06:31:47 GMT
Cache-Control: private, max-age=0, must-revalidate, no-transform
ETag: "PA40KOhMf9e-1Hypww_TkG8doNA/P9KtUv7cYy7pQSattesAaw0ejBM"
Content-Type: application/json; charset=UTF-8
X-Content-Type-Options: nosniff
X-Frame-Options: SAMEORIGIN
X-XSS-Protection: 1; mode=block
Content-Length: 215811
Server: GSE
Alternate-Protocol: 443:quic

上記の両方は、Fiddler を使用してキャプチャされました。

HttpClient を作成して使用するためのコード。当初は deflate メソッドも含めていましたが、Google が提供した例に含まれていなかったため削除しました。

HttpClientHandler Handler = new HttpClientHandler();

if (Handler.SupportsAutomaticDecompression)
{
    Handler.AutomaticDecompression = DecompressionMethods.GZip;
}

HttpClient Client = new HttpClient(Handler);
Client.DefaultRequestHeaders.TryAddWithoutValidation("Authorization", "Bearer " + Token.AccessToken);
if (Handler.SupportsAutomaticDecompression)
{
    Client.DefaultRequestHeaders.TryAddWithoutValidation("User-Agent", "my program (gzip)" /*"DriveClient (gzip)"*/);
}

HttpResponseMessage Responce = await DriveAuthorisation.DriveHttpClient.GetAsync("https://www.googleapis.com/drive/v2/files/");

ありがとう!

4

0 に答える 0