2015-06-17 190 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。