Непонятный ответ StackExchange API
Я написал небольшую программу для анализа данных моего профиля из API StackExchange, но API возвращает мне непарсированные / нечитаемые данные.
Данные получены: (самостоятельно загружается с помощью C #)
\ U001f \ Ь \ 0 \ 0 \ 0 \ 0 \ 0 \ u0004 \ 0mRMo0 \ е /: D $ C '^ {/ \ u0006 \ u0018G> \ I \ u0015 \ u0004 ݀ D> GRL'o \ u0004G% JP \ u001c-Em> 0Xbm ~ \ u0018tk \ u0014M] rdLGv0 ~ Fj = 1 \ u00031I> kTRA \ "(/ + .; нл \ u0018? ч \ u0014P 藄XaLw # 3 \ u0002 + \ u007f \ u0010 \ u000fp] v \ u007f \ т ڧ \ nf ״ \ u0018 \ u0014eƺ _ 1x # j ^ - c AX \ t \ u001aT @ qj \ u001aU7 \ u0014 \ "\ a ^ \ b # \ u001eQG% г \ т ח q00K \ ау \ u0011 {ظ \ u0005 \ "\ u001d + | \ u007f '\ u0016 ~ 8 \ u007f \ u0001-ч] О \ u007fVo \ u007f \ u0001 ~ Y \ u0003 \ u0002 \ 0 \ 0
Данные нужны: (скопировано из моего браузера)
{ "элементы": [{ "badge_counts", { "бронза": 987, "серебро": 654, "золото": 321}, "account_id": 123456789, "is_employee" ложь "LAST_MODIFIED_DATE": 1250612752,» last_access_date ": 1250540770," возраст ": 0," reputation_change_year ": 987," reputation_change_quarter ": 654," reputation_change_month ": 321," reputation_change_week ": 98," reputation_change_day ": 76," репутация ": 9876," CREATION_DATE» : 1109670518, "user_type": "зарегистрирован", "user_id": 123456789, "accept_rate": 0, "местоположение": "Австралия", "WEBSITE_URL":»http://example.org","ссылка на сайт":"http://example.org/username","изображение профиля":"http://example.org/username/icon.png», "Display_name": "имя пользователя"}], "has_more" ложь "quota_max": 300, "quota_remaining": 300}
Я написал этот (дополнительный) метод для загрузки строки из Интернета:
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;
}
Затем я искал в интернете и нашел способ загрузки строк, используя некоторые другие тактики:
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;
}
Но оба метода возвращают одни и те же (нечитаемые / не разбираемые) данные.
Как получить читаемые данные из API? Чего-то не хватает?