我已经用CNO编写了一个使用此代码连接到Web服务的应用程序...

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


该代码对所有成功的连接均适用。但是,如果全部出现“ 500 Internal Server Error”,则会显示一个带有“ Cancel”和“ Retry”的对话框。

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

代码到达这一行-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...
}

10-08 16:02