0

我有一个 PHP RESTful API,它返回 JSON 对象。我有一个 Android 客户端从该 API 请求 REST 请求

到现在为止,如果服务器端出现问题,那么 API 返回一个布尔响应“false”

我想更改 API 的流程,所以不是发送包含“false”的 JSON 响应,而是会抛出异常,我希望 android 端捕获异常。

所以基本上,我想要下面的 Android 代码:

try {
    php_api.getUsers();
} catch (Exception ex) {
    // TODO
}

可以做到吗?是否会以这种方式捕获任何 PHP 异常?

4

1 回答 1

1

我没有使用过 Java,但我认为你做不到。当 PHP 抛出异常时,它仍然会产生某种输出,这取决于您如何设置异常处理。它可以显示带有堆栈跟踪或类似内容的异常消息。但在客户端(您的 Java 应用程序)端,这只不过是文本。

但是,休息响应应始终具有您可以检查的标头。看看这个:http ://blog.zenika.com/index.php?post/2011/05/18/Error-handling-with-REST

通过遵循那里所写的内容,您的 Java-to-PHP api 将始终在返回内容之前读取响应标头。如果出现 500 或 400,你会从 api 抛出一个 java 异常,你可以在使用它的代码中捕获它。

如果您的 PHP 端没有发送您想要的标头,您始终可以覆盖 PHP 的错误/异常处理以生成自定义输出(包括标头)。

于 2012-10-12T08:01:51.413 回答