【发布时间】:2017-03-31 10:32:21
【问题描述】:
我有一个托管在不同域上的外部 api,现在我们可以使用以下 url 作为示例
https://myapi.mydomain/api/data
此 API 返回以下数据
{"data":[
{
"id":1,
"company":"JUST A DEMO",
"ext_identifier":"DEMO1"
},
{
"id":2,
"company":"ANOTHER DEMO",
"ext_identifier":"DEMO2"
}
]}
我需要调用一个控制器方法,对这个 API 执行 GET 请求,然后返回 JSON 数据供我使用。
到目前为止,我有以下代码,我想我很接近......
这是控制器代码
string url = "https://myapi.mydomain/";
[HttpGet]
public async Task<ActionResult> Search()
{
CustomerList customers = null;
using (var client = new HttpClient())
{
client.BaseAddress = new Uri(url);
client.DefaultRequestHeaders.Accept.Clear();
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
// New code:
HttpResponseMessage response = await client.GetAsync("api/data");
if (response.IsSuccessStatusCode)
{
customers = await response.Content.ReadAsAsync<CustomerList>();
}
}
return Json(new
{
data = customers
},
JsonRequestBehavior.AllowGet);
}
public class CustomerList
{
public int id { get; set; }
public string company { get; set; }
public string ext_identifier { get; set; }
}
【问题讨论】:
-
问题陈述是什么?
-
抱歉,我只是没有取回任何数据,看起来它在 ReadAsAsync 行上失败了
-
你想在你的 MVC 控制器中读取 json 数据吗?
标签: asp.net json asp.net-mvc api httpclient