加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – Stackoverflow API响应格式

发布时间:2020-12-15 08:23:55 所属栏目:百科 来源:网络整理
导读:当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": "reg
当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
      }
    }
  ]
}

如果我尝试在代码中执行相同的操作:

HttpWebRequest Request = WebRequest.Create("http://api.stackoverflow.com/1.1/users/882993") as HttpWebRequest;  

    using (HttpWebResponse Response = Request.GetResponse() as HttpWebResponse)  
    {  
        // Get the response stream  
        StreamReader Reader = new StreamReader(Response.GetResponseStream());

        // Console application output  
        StackWidget.Text = Reader.ReadToEnd();
    }

我收到了回复:

?bu?Ms?0???`8???2?rl????#???J4??^t#?p?g???j?????|?n?G/??7p????$?5r???f?y?v?????"F(????0???J??{????????$???e?!T?-~+??@_p???jfb?(?f?my??dt???!AVt????G'$"?i{;??X??5H9?z(?"GQ<?]??TA9b?Z??T??U%???;?n?-????*:???w?c???yU|P?m?S??Mr?????O???@?m??????n'b?}/?ь?.7Ea?*???uaDN@?k??N?L?zUn?3?:DJ^S{????$K?"??:f?.?)?P?f?Qqf?C?/?k*UN=?Ar?,7???.???p?9?3?jVT7??)?HfYzW?4kGX?_|?AK??q?KU?GGw??^?j????D???7????r,?N?yzno?Fro??[?&i{af????,???c~=l>6?U?F

解决方法

您收到的HTTP响应是GZIP压缩的,因此您必须解压缩响应流.这可以通过设置 HttpWebRequest.AutomaticDecompression属性自动完成.
var request = (HttpWebRequest)WebRequest.Create("http://api.stackoverflow.com/1.1/users/882993");
request.AutomaticDecompression = DecompressionMethods.GZip | DecompressionMethods.Deflate; 
using (var response = request.GetResponse())
using (var stream = response.GetResponseStream())
using (var reader = new StreamReader(stream))
{
    var json = reader.ReadToEnd();
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读