Resposta da API StackExchange não analisável
Eu escrevi um pequeno programa para analisar meus dados de perfil da API StackExchange, mas a API retorna dados incomparáveis / ilegíveis para mim.
Dados recebidos: (baixado automaticamente usando c #)
\ u001f \ b \ 0 \ 0 \ 0 \ 0 \ 0 \ u0004 \ 0mRMo 0 \ f /: d $ c˱ ' ^ {/ \ u0006 \ u0018G > \ I \ u0015 \ u0004 ݀ D> GR L' o \ u0004 G % JP \ u001c - Em> 0 X bm ~ \ u0018tk \ u0014 M] r dLG v0 ~ Fj = 1 \ u00031I > kTRA \ "(/ +. ; Nl \ u0018 ? h \ u0014 P 藄 X aL w # 3 \ u0002 + \ u007f \ u0010 \ u000f p ] v \ u007f \ t ڧ nf ״ \ u0018 \ u0014eƺ _ 1x # j ^ - c AX \ t \ u001aT @ qj \ u001aU7 \ u0014 \ "\ a ^ \ b # \ u001e QG % y \ t ח q00K \ av \ u0011 {ظ \ u0005 \ "\ u001d + | \ u007f \ u0016 ~ \ U007f \ u0001-h ] O \ u007fV o \ u007f \ u0001 ~ Y \ u0003 \ u0002 \ 0 \ 0
Dados desejados: (copiar e colar no meu navegador)
{"items": [{"badge_counts", {"bronze": 987, "silver": 654, "gold": 321}, "account_id": 123456789, "is_employee": false, "last_modified_date": 1250612752, " last_access_date ": 1250540770," age ": 0," reputation_change_year ": 987," reputação_change_quarter ": 654," reputação_change_month ": 321," reputation_change_month ": 321," reputation_change_week ": 98," reputação_change_day ": 76," reputation ": 9876," creation_date " : 1109670518, "user_type": "registration", "user_id": 123456789, "accept_rate": 0, "location": "Australia", "website_url": "http://example.org","ligação":"http://example.org/username","imagem de perfil":"http://example.org/username/icon.png"," display_name ":" nome de usuário "}]," has_more ": false," quota_max ": 300," quota_remaining ": 300}
Eu escrevi este método (extensão) para baixar uma string da Internet:
public static string DownloadString(this string link)
{
WebClient wc = null;
string s = null;
try
{
wc = new WebClient();
wc.Encoding = Encoding.UTF8;
s = wc.DownloadString(link);
return s;
}
catch (Exception)
{
throw;
}
finally
{
if (wc != null)
{
wc.Dispose();
}
}
return null;
}
Pesquisei na internet e encontrei um método para baixar seqüências de caracteres, usando outras táticas:
public string DownloadString2(string link)
{
WebClient client = new WebClient();
client.Encoding = Encoding.UTF8;
Stream data = client.OpenRead(link);
StreamReader reader = new StreamReader(data);
string s = reader.ReadToEnd();
data.Close();
reader.Close();
return s;
}
Mas ambos os métodos retornam os mesmos dados (não lidos / não analisáveis).
Como posso obter dados legíveis da API? Falta alguma coisa?