Frage:
Wie dekomprimiere ich GZip-codierte JSON-Daten von der API mithilfe von HTTPClient in der WCF-Dienstanwendung?
Lösung:
Um den GZip-Stream zu dekomprimieren und die JSON-Daten zu lesen, führen Sie die folgenden Schritte aus:
Verwenden Sie die automatische Dekomprimierungsfunktion, um HttpClient zu instanziieren:
<code class="language-csharp">HttpClientHandler handler = new HttpClientHandler() { AutomaticDecompression = DecompressionMethods.GZip | DecompressionMethods.Deflate }; using (var client = new HttpClient(handler)) { //您的代码 }</code>
Hinweis: Wenn Sie .NET Core 2.1 oder höher verwenden, sollten Sie die Verwendung von IHttpClientFactory in Betracht ziehen.
Verbindung herstellen und Antwort erhalten:
Ersetzen Sie die vorhandene getData-Methode durch Folgendes:
<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>
Nach Abschluss dieser Schritte gibt die getData-Methode die dekomprimierten JSON-Daten (in String-Form) zurück, die Sie in einer Datenbank speichern oder weiter verarbeiten können.
Das obige ist der detaillierte Inhalt vonWie dekomprimiere ich GZip-codierte JSON-Daten aus einer API mithilfe von HTTPClient in WCF?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!