Csharp/C#教程:检查WebAPI是否可用于C#Code Behind的简单,最佳方法分享


检查WebAPI是否可用于C#Code Behind的简单,最佳方法

检查WebAPI是否可用的最佳方法是什么? 我想在一个简单的if()语句中检查它,是否可以保持它相对简单? 如果有更好的方法来检查。 像一个尝试/捕获。 就告诉我嘛。 谢谢

我想在我的代码隐藏的Page_Load方法中包含if语句。 因此,当API不可用时,我可以阻止该网站。

我试过这个:

 try { WebClient client = new WebClient(); client.UseDefaultCredentials = true; string response = client.DownloadString(baseuri + Constants.API_LEHRLING + lehrlingID); } catch (Exception ex) { string url = "AccessDenied.aspx"; Server.Transfer(url, true); } 

我想从我的webapi下载一个字符串。 我的uri是自动构建的。 如果发生exception,我会引用我的错误网站。

还有其他想法吗? 这种方法有效,但不是很干净

这样的事情应该这样做(假设您的API有一个支持相当简单的GET请求的方法)。 如果您没有收到HTTP 200(OK)响应,则可能存在问题,您应该采取措施使您的网站无法使用(例如隐藏所有内容)。

如果你有一个,最好将它放在你的母版页中:

 protected void Page_Load(object sender, EventArgs e) { try { System.Net.WebClient client = new System.Net.WebClient(); string result = client.DownloadString("https://www.example.com/api/TestMethod"); } catch (System.Net.WebException ex) { //do something here to make the site unusable, eg: myContent.Visible = false; myErrorDiv.Visible = true; } } 

假设这是你的流程:

在发出实际请求之前想要检查API是没有意义的。 当然,简单的“GET”可能会成功,然后实际的请求可能会失败,并没有certificate什么。 API可以在两个请求之间停止,或者“检查”请求执行与实际请求不同的操作,导致后者无论如何都会失败。

此外,鉴于大多数网络I / O都是非常漏洞的抽象,无论如何,您需要围绕它们的exception处理代码。 因此,无论您使用HttpWebRequestWebClient还是HttpClient ,您需要将代码包装在try-catch块中。

请参阅如何查看HttpClient是否连接到脱机网站 , .Net HttpWebRequest.GetResponse()在返回http状态代码400(错误请求)时引发exception , 如何检查Web服务器是否已启动? (C#)等。

但是,似乎API会为您处理授权和身份validation,并且API有时会“失败”,导致您的代码将此检测为有效尝试使用您的网站,因此您似乎只需要修复实际的代码执行API调用 。 不, if()声明会帮助你。

上述就是C#学习教程:检查WebAPI是否可用于C#Code Behind的简单,最佳方法分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/cdevelopment/990405.html

(0)
上一篇 2021年12月24日
下一篇 2021年12月24日

精彩推荐