相关疑难解决方法(0)

从HTTPClient响应中解压缩GZip流

我正在尝试连接到一个api,它从WCF服务(WCF服务到WCF服务)返回GZip编码的JSON.我正在使用HTTPClient连接到API,并且能够将JSON对象作为字符串返回.但是我需要能够将这些返回的数据存储在数据库中,因此我认为最好的方法是将JSON对象返回并存储在数组或字节中或沿着这些行存储.

我特别遇到的问题是GZip编码的解压缩,并且尝试了很多不同的例子,但仍然无法得到它.

下面的代码是我建立连接和获得响应的方式,这是从API返回字符串的代码.

public string getData(string foo)
{
    string url = "";
    HttpClient client = new HttpClient();
    HttpResponseMessage response;
    string responseJsonContent;
    try
    {
        client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
        response = client.GetAsync(url + foo).Result;
        responseJsonContent = response.Content.ReadAsStringAsync().Result;
        return responseJsonContent;
    }
    catch (Exception ex)
    {
        System.Windows.Forms.MessageBox.Show(ex.Message);
        return "";
    }
}
Run Code Online (Sandbox Code Playgroud)

我一直在关注一些不同的例子,比如这些StackExchange API,MSDN和一些关于stackoverflow,但我无法让任何这些对我有用.

实现这一目标的最佳方法是什么,我是否在正确的轨道上?

多谢你们.

c# wcf json gzip

78
推荐指数
2
解决办法
3万
查看次数

如何在 C# 中解压缩 Gzipped Http Get Response

想要解压缩从 API 获取的 GZipped 响应。尝试了下面的代码,它总是返回类似:-

\n\n
\\u001f\xef\xbf\xbd\\b\\0\\0\\0\\0\\0\\0\\0\xef\xbf\xbdY]o........\n
Run Code Online (Sandbox Code Playgroud)\n\n

我的代码是:

\n\n
 private string GetResponse(string sData, string sUrl)\n {\n      try\n      {\n           string script = null;\n           try\n           {\n                string urlStr = @"" + sUrl + "?param=" + sData;\n\n                Uri url = new Uri(urlStr, UriKind.Absolute);\n\n                HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);\n                request.Method = "GET";\n                request.AutomaticDecompression = DecompressionMethods.GZip | DecompressionMethods.Deflate;\n\n                using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())\n                using (StreamReader reader = new StreamReader(response.GetResponseStream()))\n                {\n                     script = reader.ReadToEnd();\n                }      \n           }\n           catch (System.Net.Sockets.SocketException)\n           {\n                // The remote site is currently …
Run Code Online (Sandbox Code Playgroud)

c# compression gzip get request

11
推荐指数
2
解决办法
1万
查看次数

标签 统计

c# ×2

gzip ×2

compression ×1

get ×1

json ×1

request ×1

wcf ×1