如何从web api获得响应 [英] How to get response from web api

查看:88
本文介绍了如何从web api获得响应的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在mvc控制器中使用了一个web api。但是没有返回任何数据。请帮助我使用我的api链接。



我是什么尝试过:



I am consumed a web api in mvc controller.But no data has been returned.please help me to consume my api link.

What I have tried:

public class HomenewController : Controller
    {
        // GET: Homenew
        string url = "https://api.yourmembership.com/reference/2_25/Sa_Members_Groups_Add.htm ";


        public async Task<ActionResult> Index()
        {
            List<Employee> EmpInfo = new List<Employee>();

            using (var client = new HttpClient())
            {
            
                client.BaseAddress = new Uri(url);

                client.DefaultRequestHeaders.Clear();
               
                client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));

               
                HttpResponseMessage Res = await client.GetAsync(url);

          
                if (Res.IsSuccessStatusCode)
                {
             
                    var EmpResponse = Res.Content.ReadAsStringAsync().Result;

                  
                    EmpInfo = JsonConvert.DeserializeObject<List<Employee>>(EmpResponse);

                }
           
                return View(EmpInfo);
            }
        }
   
    }
}





模型api link



Model for the api link

public class Employee
  {
      public String ID { get; set; }
      public String GroupCode { get; set; }

      public Boolean AddAsMember { get; set; }
      public Boolean IsPrimaryGroup { get; set; }

      public Boolean AddAsGroupAdmin { get; set; }

      public String AddGroupRepTitle { get; set; }

  }

推荐答案

首先检查你从api传递的属性控制器?



你可以在api控制器中尝试这种类型的代码:



First you check your which properties are you passing from the api controller?

And You can try this type code in api controller:

/// <summary>
/// This method for Get All employee .
/// </summary>
[HttpGet]
[Route("GetEmployee")]
public HttpResponseMessage GetEmployee()
{
    try
    {
        ////get employee.
        var employeeCollection = employeeService.GetEmployee().ToList();
        ////check object
        if (employeeCollection.Count > 0 && employeeCollection != null)
        {
            ////dynamic list.
            dynamic employees = new List<ExpandoObject>();
            ////bind dynamic property.

            ////return response from employee service.
            foreach (var employeeDetail in employeeCollection)
            {
                ////bind dynamic property.
                dynamic employee = new ExpandoObject();

                ////map ids
                employee.ID = employeeDetail.ID;
                employee.GroupCode = employeeDetail.GroupCode;
                employee.AddAsMember = employeeDetail.AddAsMember;
                employee.IsPrimaryGroup = employeeDetail.IsPrimaryGroup;
                employee.AddAsGroupAdmin = employeeDetail.AddAsGroupAdmin;
                employee.AddGroupRepTitle = employeeDetail.AddGroupRepTitle;
                ////set customers values in list.
                employees.Add(employee);
                ////return customers service
                return this.Request.CreateResponse<List<ExpandoObject>>(HttpStatusCode.OK, (List<ExpandoObject>)employees);

            }
        }
        else
        {
            ////case of record not found.
            return this.Request.CreateResponse(HttpStatusCode.NotFound);
        }


    }
    catch (Exception ex)
    {
        //// handel exception log.
        Console.Write(ex.Message);

        ////return case of exception.
        return this.Request.CreateResponse(HttpStatusCode.InternalServerError, new { Message = "Exception : " + ex.Message });
    }
}










hope it's useful for you...


这篇关于如何从web api获得响应的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆