我已经用 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/