【发布时间】:2014-12-07 05:55:01
【问题描述】:
在我的 MVC 应用程序中,我进行了很多需要几行代码的 Web API 调用。我想创建一个用于进行 API 调用的集中式方法,并将一些简单的参数传递给它,例如调用类型(GET、POST 等)、Url 等。
我需要帮助的地方是,在每种情况下,我都会返回不同的对象类型,例如Employee、List
另一个问题是,如果我想进行 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 个示例吗?您也许可以为您的代码创建一个基类,或创建调用处理程序类,但在这两种情况下,您都必须使用泛型来传递参数和返回类型。
-
刚刚用我想出的示例代码更新了我的原始帖子。我以前从未返回过通用对象,所以我试图了解我是如何做到这一点的。我在代码中不清楚的另一部分是当我从我的 Web API 收到错误响应时。那我会返回什么?
-
太好了,让我给你写一些代码,然后在这里发布。
标签: c# asp.net-mvc asp.net-web-api2