gpt4 book ai didi

c# - 如何区分从服务器返回的 NotFound 和由于连接不良导致的 NotFound?

转载 作者:太空狗 更新时间:2023-10-29 23:52:04 26 4
gpt4 key购买 nike

在 Windows Phone 上,我可以使用 StatusCode == HttpStatusCode.NotFound 获取 WebException if

  1. 服务器返回 404
  2. 由于连接不良,无法找到服务器。

在 Windows Phone 上,对于这两种情况,WebException 的状态都是 WebExceptionStatus.UnknownError

如何区分案例 1 和案例 2

我观察到的是当连接不良时(未找到服务器)ResponseUri 为空并且 WebResponse 的 header 包含 0 项。

编辑
ResponseUri 不为空,而是其 OriginalString 为空

这样做安全吗:

catch (WebException ex)
{
switch (ex.Response.StatusCode)
{
...
case HttpStatusCode.NotFound:
if (ex.Response.ResponseUri == null
|| string.IsNullOrEmpty(httpWebResponse.ResponseUri.OriginalString))
DoServerNotFound();
else
DoServerReturned404();

最佳答案

为什么不使用 NetworkInterface.GetIsNetworkAvailable() 在进行网络调用之前查看是否存在事件的网络连接。否则,您最终会无所事事,浪费了一个电话。如果有连接但调用仍然失败,您就知道这是 Web 服务的问题。

我在我的应用程序中使用它,如果没有连接,我不会费心打电话。

谢谢
最大

关于c# - 如何区分从服务器返回的 NotFound 和由于连接不良导致的 NotFound?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12951610/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com