Returning json result while consuming web api from mvc controller

19,798

Using Json.Net you could do something like this:

public async Task<JsonResult> GetUserMenu()
{
    string result = string.Empty;

    using (HttpClient client = new HttpClient())
    {
        client.BaseAddress = new Uri(url);
        HttpResponseMessage response = await client.GetAsync(url);

        if (response.IsSuccessStatusCode)
        {
            result = await response.Content.ReadAsStringAsync();
        }
    }

    return Json(Newtonsoft.Json.JsonConvert.DeserializeObject<dynamic>(result));
}
Share:
19,798
stackdisplay
Author by

stackdisplay

Updated on July 10, 2022

Comments

  • stackdisplay
    stackdisplay almost 2 years

    I am consuming an external web api through mvc controller with HttpClient. My web api do return json-formatted content.

    How do i return the same json-formatted content of web api response in my mvc controller while consuming the web api? I am expecting something like this.

    public async JsonResult GetUserMenu()
    {
        using (HttpClient client = new HttpClient())
        {
            client.BaseAddress = new Uri(url);
            HttpResponseMessage response = await client.GetAsync(url);
    
            if (response.IsSuccessStatusCode)
            {
                 return await response.Content.ReadAsJsonAsync();
            }
        }
    }