質問:
WCF サービス アプリケーションで HTTPClient を使用して API から GZip でエンコードされた JSON データを解凍するにはどうすればよいですか?
解決策:
GZip ストリームを解凍して JSON データを読み取るには、次の手順に従います。
自動解凍機能を使用して HttpClient をインスタンス化します:
<code class="language-csharp">HttpClientHandler handler = new HttpClientHandler() { AutomaticDecompression = DecompressionMethods.GZip | DecompressionMethods.Deflate }; using (var client = new HttpClient(handler)) { //您的代码 }</code>
注: .NET Core 2.1 以降を使用している場合は、IHttpClientFactory の使用を検討してください。
接続を確立し、応答を取得します:
既存の getData メソッドを次のものに置き換えます:
<code class="language-csharp">public string getData(string foo) { string url = ""; // 请替换为您的API地址 using (var client = new HttpClient(handler)) // 使用支持解压的HttpClient { client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); HttpResponseMessage response = client.GetAsync(url + foo).Result; string responseJsonContent = response.Content.ReadAsStringAsync().Result; return responseJsonContent; } }</code>
これらの手順を完了すると、getData メソッドは解凍された JSON データ (文字列形式) を返します。これをデータベースに保存したり、さらに処理したりできます。
以上がWCF で HTTPClient を使用して API から GZip でエンコードされた JSON データを解凍する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。