代码之家  ›  专栏  ›  技术社区  ›  user278859

如何测试web服务是否可用

  •  0
  • user278859  · 技术社区  · 15 年前

    我正在从一个web服务中检索数据。。。

    NSString *myDataString = [[NSString alloc] initWithContentsOfURL:url encoding:NSUTF8StringEncoding error:&outError];
    

    如何处理web服务不可用的情况?现在,应用程序只需挂断即可。

    是否有方法测试站点是否可用?olso,initWithContentsOfURL没有任何超时功能。

    谢谢你的帮助。

    约翰

    1 回复  |  直到 11 年前
        1
  •  3
  •   Jasarien    15 年前

    你不应该用 initWithContentsOfURL: ,它是一个阻塞API,将导致应用程序在执行时挂起,除非您手动生成一个新线程来运行并正确管理它。

    你应该用 NSURLConnection

    使用 NSURLConnection公司 您将获得一个非阻塞的异步功能,并且还将能够处理诸如身份验证、响应代码、超时和取消请求之类的事情。

    NSURLConnection公司 ,和 NSURLRequest (以及 NSMutableURLRequest ).

    这个 委托方法是处理响应代码、身份验证等的方法。

    • 使用Apple的可达性示例来测试是否可以从当前网络访问internet连接和/或主机。
    • 使用 以处理来自服务器的响应代码。200可以,404页找不到,需要401授权,500内部服务器错误等
      • 您可以根据代码执行不同的操作。