在我的MVC应用程序中,我做了很多需要几行代码的Web API调用。我想创建一个集中的API调用方法,只需将一些简单的参数传递给它,例如呼叫类型(GET,POST等),Url等。想要集中调用我的Web API的代码
我需要帮助的是在每种情况下,我将返回不同的对象类型,例如Employee,List <Project>等。如何返回不同的对象类型?
另一个问题是,如果我想进行POST或PUT调用,我会将不同类型的对象传入我的集中式API调用方法。再次,我有同样的问题,我必须能够接受不同的对象类型。
我想,我可以只传递Json对象,但我不确定这是正确的方法,还是有更好的方法。我确信其他人已经试图集中他们的Web API调用代码。
*更新* 这是我迄今为止,但我需要更多的帮助。我如何返回结果?
public static async Task<object> GetApiCall(string apiActionUrl)
{
using (var client = new HttpClient())
{
client.BaseAddress = new Uri("http://myApiBaseUrl");
client.DefaultRequestHeaders.Accept.Clear();
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
HttpResponseMessage response = await client.GetAsync(apiActionUrl);
if (response.IsSuccessStatusCode)
{
var result = response.Content.ReadAsStringAsync().Result;
}
}
}
可以显示您想要集中的代码的2个样本?你也许可以为你的代码创建一个基类,或者创建一个call handler类,但是在这两种情况下,你都必须泛型传递参数和返回类型。 – 2014-12-07 06:20:22
刚刚更新了我原来的帖子,并附上了我提出的示例代码。我从来没有返回过一个通用对象,所以我试图了解我是如何做到这一点的。我在代码中不清楚的其他部分是,当我从Web API收到错误响应时。那么我会返回什么? – Sam 2014-12-07 06:27:11
太棒了,让我给你写一些代码,并在这里发布它。 – 2014-12-07 06:36:55