相关疑难解决方法(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万
查看次数

.NET的HttpWebResponse会自动解压缩GZiped和Deflated响应吗?

我正在尝试接受压缩响应的请求

var request = (HttpWebRequest)HttpWebRequest.Create(requestUri);
request.Headers.Add(HttpRequestHeader.AcceptEncoding, "gzip,deflate");
Run Code Online (Sandbox Code Playgroud)

我想知道当我添加第二行时,我将不得不手动处理解压缩.

.net c# gzip httpwebrequest deflate

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

Stackoverflow API响应格式

当C#创建HTTP GET请求时,Stackoverflow API返回意外响应.

如果我将http://api.stackoverflow.com/1.1/users/882993粘贴到浏览器地址栏中,我会得到正确的JSON响应:

{
  "total": 1,
  "page": 1,
  "pagesize": 30,
  "users": [
    {
      "user_id": 882993,
      "user_type": "registered",
      "creation_date": 1312739131,
      "display_name": "Jack",
      "reputation": 1926,
      "email_hash": "69243d90e50d9e0b3e025517fd23d1da",
      "age": 23,
      "last_access_date": 1358087009,
      "website_url": "http://jtbrown.me.uk",
      "location": "Birmingham, United Kingdom",
      "about_me": "<p>Student.</p>\n",
      "question_count": 68,
      "answer_count": 79,
      "view_count": 115,
      "up_vote_count": 98,
      "down_vote_count": 3,
      "accept_rate": 94,
      "association_id": "d64187a3-bf66-4a4d-8e87-6ef18f0397e3",
      "user_questions_url": "/users/882993/questions",
      "user_answers_url": "/users/882993/answers",
      "user_favorites_url": "/users/882993/favorites",
      "user_tags_url": "/users/882993/tags",
      "user_badges_url": "/users/882993/badges",
      "user_timeline_url": "/users/882993/timeline",
      "user_mentioned_url": "/users/882993/mentioned",
      "user_comments_url": "/users/882993/comments",
      "user_reputation_url": "/users/882993/reputation",
      "badge_counts": {
        "gold": 0,
        "silver": 7,
        "bronze": 34 …
Run Code Online (Sandbox Code Playgroud)

c# asp.net stackexchange-api

6
推荐指数
1
解决办法
340
查看次数

C#HttpWebRequest - 使用Gzip压缩

我有一个程序,它产生了很多HttpWebRequests,我读到了使用gzip压缩来加速响应数据的下载.我知道gzip是什么,以及它是如何工作的,但我不知道它在C#中是如何工作的.

假设我有一个简单的GET请求:

HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://google.com");
request.Method = "GET";
WebResponse response = request.GetResponse();
Run Code Online (Sandbox Code Playgroud)

如何在gzip中压缩响应数据?如何显示压缩大小,然后显示未压缩的大小?

谢谢

.net c# compression gzip httpwebrequest

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