在我的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