我想使用Rest-class来做一些http调用,因为它看起来非常方便。但是,我似乎无法与自定义错误处理一起使用它。无论我做什么,我总是会遇到来自ConnectionRequest默认实现的内置弹出窗口。
由于Rest方法的接口包含
public interface Callback<T> extends SuccessCallback<T>, FailureCallback<T> {
}
// RequestBuilder.java
public void getAsStringAsync(final Callback<Response<String>> callback) {...}
它让我有点奇怪,我无法真正利用FailureCallback,因为它永远不会被调用,因为ConnectionRequest中的默认实现中有默认弹出窗口。
我是否误解了如何在这方面使用FailureCallback?
答案 0 :(得分:1)
无论是否应该调用失败回调,这个方法的某些变体可能会对回调代码产生问题,所以如果你有一个不起作用的特定方法引用,我可以看一下。
关于一般错误处理。有趣的是,我们刚刚更新了在新项目向导中创建的默认项目,以包含此类代码,以便人们轻松找到它。见https://www.codenameone.com/blog/new-default-code.html
覆盖默认网络处理错误的代码如下所示:
addNetworkErrorListener(err -> {
// prevent the event from propagating
err.consume();
if(err.getError() != null) {
Log.e(err.getError());
}
Log.sendLogAsync();
});
请注意,代码需要CN类静态导入才能编译:
import static com.codename1.ui.CN.*;