У меня есть внешний интерфейс API, который размещается на другом домене сейчас мы можем использовать следующий URL-адрес в качестве примераASP.NET MVC контроллер метод GET для внешнего API
https://myapi.mydomain/api/data
Этот API возвращает следующие данные
{"data":[
{
"id":1,
"company":"JUST A DEMO",
"ext_identifier":"DEMO1"
},
{
"id":2,
"company":"ANOTHER DEMO",
"ext_identifier":"DEMO2"
}
]}
Мне нужно вызвать метод контроллера, который делает запрос GET против этого API, а затем возвращает данные в формате 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; }
}
В чем проблема? – Nkosi
Извинения, что я просто не получал никаких данных назад, похоже, что это было неудачно на линии ReadAsAsync –
, которую вы хотите прочитать json Data в своем MVC-контроллере? – Aravind