2015-06-17 226 views
0

我正在使用HttpClient從ASP.NET Web API控制器使用外部API。我不使用驗證,只是一個象徵,所以我有:從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

您是否嘗試過使用任何類型的工具(如高級休息客戶端或它的模擬器)來編寫類似的請求?只是爲了確保服務器端可以返回json。 –

+0

我試過郵差,我無法獲得JSON。奇怪的是,在API文檔中他們有響應的例子,並顯示XML和JSON。 –

+2

他們可能會忽略Accept頭。它可以是一切像?format = json查詢參數或其他東西。嘗試先聯繫API所有者。 –

回答

2

尊重媒體類型(application/json)取決於API開發人員。當客戶端請求JSON時(如果他們感覺像是在拖動),開發人員可能會顯式返回XML,但在這種情況下,它可能只是爲您提供默認格式,因爲它們不檢查標頭值。

查看文檔或直接與他們聯繫以確認他們以JSON格式返回數據以及如何格式化請求以獲取JSON。