从web api获取整数列表

时间:2014-02-05 19:07:12

标签: c# asp.net-web-api

如何从WebApi获取列表?

到目前为止,我有Api方法:

    public IList<int> GetKeywordIdsById([FromBody]string id)
    {
        try
        {
            if (string.IsNullOrEmpty(id))
            {
                return null;
            }
            else
            {
                return _categoryService.GetKeywordIdsById(Convert.ToInt32(id));
            }
        }
        catch
        {
            return null;
        }
    }

如何调用它并提取列表?

到目前为止,我这样称呼它,但结果来自String类型,那么如何将其转换为List?:

public List<int> GetKeywordIdsById(int id)
{
    try
    {
        using (var client = new HttpClient())
        {
            client.BaseAddress = new Uri(API_BASE_URL);
            client.DefaultRequestHeaders.Accept.Clear();
            client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));

            return client.GetAsync("api/category/getkeywordidsbyid/" + id).Result.Content.ReadAsStringAsync().Result;
        }
    }
    catch (Exception e)
    {
        logger.Log(LogLevel.Info, e);

        return null;
    }
}

2 个答案:

答案 0 :(得分:2)

像这样:

client.GetAsync("api/category/getkeywordidsbyid/" + id).Result.Content.ReadAsAsync<List<int>>().Result;

请参阅asp.net上的这篇文章:

  

Calling a Web API From a .NET Client (C#)

答案 1 :(得分:0)

JavaScriptSeralizer

var sr = new JavaScriptSerializer();
int[] arr = sr.Deserialize<int[]>(arrJSON);

arrJSON是您从http GetAsync调用中收到的字符串响应。