【问题标题】:How to test webservice connection如何测试网络服务连接
【发布时间】:2012-10-23 05:04:21
【问题描述】:

我开发了一个 android 和一个 iOS phonegapp 应用程序。 原生 android 代码加载应用程序的 html 文件:

super.loadUrl() 

在这个 html 文件中,我启动了对 web 服务的 ajax 请求。

但在我连接到 web 服务并进行 ajax 调用之前,我会测试到 web 服务的连接,当我无法连接到 web 服务时,应用程序应该在我加载 html 之前关闭,并发出警报或警告。

【问题讨论】:

  • 加载phonegap后如何发送ajax请求。直到您可以提供加载屏幕/启动屏幕。如果您无法连接到网络服务,您可以调用自定义退出代码。
  • 现在使用 Junit 测试您的 Web 服务响应...findnerd.com/list/view/…

标签: java javascript android ios cordova


【解决方案1】:

您可以使用 HttpURLConnection 发送请求并检查响应正文中该页面独有的文本(而不是仅仅检查是否有响应,以防万一出现错误或维护页面或其他问题)被送达)。

Apache Commons 有一个库,它删除了许多在 Java 中发出 Http 请求的样板。

我从来没有专门在 Android 上做过类似的事情,但如果有什么不同,我会感到惊讶。

这是一个简单的例子:

URL url = new URL(URL_TO_APPLICATION);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
InputStream stream = connection.getInputStream();
Scanner scanner = new Scanner(stream); // You can read the stream however you want. Scanner was just an easy example
boolean found = false;
while(scanner.hasNext()) {
    String next = scanner.next();
    if(TOKEN.equals(next)) {
        found = true;
        break;
    }
}

if(found) {
    doSomethingAwesome();
} else {
    throw aFit();
}

也试试这个

他可能需要 Java 代码,因为他在 Android 上工作。 Java 等价物——我相信它适用于 Android——应该是:

InetAddress.getByName(host).isReachable(timeOut)

【讨论】:

  • 但这只会让您知道是否有任何连接可用,而不是 Web 服务器是否已准备好/服务器是否已启动
  • 我需要知道服务器是否在线。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-06-23
  • 1970-01-01
  • 1970-01-01
  • 2013-07-11
  • 2011-09-26
  • 1970-01-01
  • 2020-03-11
相关资源
最近更新 更多