java - 使用代号一捕获网络错误

标签 java codenameone

我已经用 CNO 编写了一个应用程序,它使用这段代码连接到网络服务...

NetworkManager.getInstance().addToQueueAndWait(connReq);
Map<String,Object> result = new JSONParser().parseJSON(new InputStreamReader(new ByteArrayInputStream(connReq.getResponseData()), "UTF-8"));
return result; 

该代码适用于所有成功的连接。但是,当出现“500 内部服务器错误”时,它会显示一个包含“取消”和“重试”的对话框。

问题是,作为测试的一部分,我故意在端点发出错误的请求 - 但我似乎没有任何选择如何处理错误的响应。

代码到达这一行 - NetworkManager.getInstance().addToQueueAndWait(connReq); - 然后就死了。

是否有办法捕获失败然后继续?

谢谢

最佳答案

有很多方法可以处理错误。查看developer guide section on networking进行长时间的讨论。

与您的方法一致的简单解决方案是:

connReq.setFailSilently(true);
NetworkManager.getInstance().addToQueueAndWait(connReq);    

if(connReq.getResponseCode() == 200 || connReq.getResponseCode() == 202) {
    // success code here
} else {
    // fail code here...
}

关于java - 使用代号一捕获网络错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40945614/

相关文章:

java - 如何在codenameone中省略按钮组件的灰色背景色

java - 设置内部类的日志级别(在 Glassfish 中)

java - 在没有框架的情况下创建模拟对象

java - 使用 sendRedirect URL 传递 header 参数

java - 如何生成使用 WSDL 动态位置的 SOAP 客户端代码?

css - 尝试在 Codename One 中的 MultiButton 上设置按下/选择的样式会导致堆栈溢出错误

ios - 代号一-iOS发布

java - 使用 codenameone 制作一个将图像上传到服务器的应用程序

java - 在android中创建一个主要的抽象 View

java - 如何在同一表单上正确使用 Picker 和 BrowserComponent?