检查API是否正在运行



我有一个用于存储数据的API,我正在通过mvc应用程序消费它。身份验证过程、存储数据和其他一切工作正常。问题是我正在尝试处理将来可能发生的一些错误或异常。其中之一是处理如果我的应用程序无法连接到我的web api并抛出错误或将用户引导到其他地方。

使用api的web应用程序控制器:

HttpClient client = new HttpClient();
client.BaseAddress = new Uri("https://localhost:44304");
HttpContent content = new FormUrlEncodedContent(
new List<KeyValuePair<string, string>> 
{
new KeyValuePair<string, string>("username", lgv.username),
new KeyValuePair<string,string>("password", lgv.password),
new KeyValuePair<string,string>("grant_type","password"),
});
content.Headers.ContentType = new MediaTypeHeaderValue("application/x-www-form-urlencoded");
content.Headers.ContentType.CharSet = "UTF-8";
/*this is the line where all the parameters get passed and validates everything*/
var resultDisplay = await client.PostAsync("token", content);
/* **************************************************************************** */
if (resultDisplay.IsSuccessStatusCode)
{
var loginData = await resultDisplay.Content.ReadAsAsync<LoginResponseViewModel>();
Session["access_token"] = loginData.Access_Token;
}

所以我尝试的是:

HttpException hc = new HttpException();
switch(hc){
case 200: return view("success"); /* since successful code is 200*/
break;
case 400: return view("error");
break;
}

但是它似乎不起作用,因为这段代码只检查应用程序的状态,而不是api…我的问题是,如果我的api没有运行,我该如何处理?

所以不是在应用程序上进行切换,而是在resultDisplay.StatusCode上进行切换,这样您就可以使用响应状态代码检查API状态。

:

switch(resultDisplay.StatusCode){
case 200: return view("success"); /* since successful code is 200*/
break;
case 400: return view("error");
break;
}

最新更新