2015-06-17 3 views
0

Я использую HttpClient для использования внешнего API с помощью API-интерфейса ASP.NET Web API. Я не использую проверку подлинности, просто маркер, так что у меня есть:Получите ответ в JSON от API

using (var httpClient = new HttpClient()) { 

    httpClient.DefaultRequestHeaders.Accept.Clear(); 

    httpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); 

    HttpResponseMessage response = await httpClient.GetAsync(endpoint); 

} 

Я получаю ответ всегда в формате XML, но я посылаю заголовок с «приложения/JSON».

Я пропустил что-то такое, что это проблема с внешним API?

Что еще я могу попытаться получить в JSON?

+0

Вы пытались составить подобный запрос, используя любой инструмент, например, Advanced Rest Client или его аналог? Просто чтобы убедиться, что серверная сторона может вернуть json. –

+0

Я пробовал Почтальона, и я не смог получить JSON. Странно то, что в документах API есть примеры ответов и отображаются как XML, так и JSON. –

+2

Они могут игнорировать заголовок Accept. Это может быть все, что угодно: format = json query parameter или что-то еще. Сначала попробуйте связаться с владельцами API. –

ответ

2

Это зависит от разработчика (-ов) API, который будет уважать тип носителя (application/json). Разработчик может явно возвращать XML, когда клиент запрашивает JSON (если они чувствуют себя троллинг), хотя в этом случае он, вероятно, просто дает вам формат по умолчанию, потому что они не проверяют значение заголовка.

Проверьте документы или свяжитесь с ними напрямую, чтобы подтвердить, что они возвращают данные в формате JSON и как отформатировать запрос на получение JSON.

Смежные вопросы