• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

java - 网络请求超时或网络丢失或网络速度慢在代号中无法正确处理

[复制链接]
菜鸟教程小白 发表于 2022-12-11 17:01:19 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

我尝试按如下顺序依次调用任何 Web 服务,如下所示。一旦所有 Web 服务成功运行,任务就结束了。如果没有,则必须向用户显示警报。

代码:

Dialog progressDialog = ComponentUtils.getFormattedDialog(new Dialog());
progressDialog.showModeless();

boolean allDone = true;

for(int i=0;i<serviceList.size();i++){
    String serviceUrl = serviceList.get(i);
    boolean service = getServiceResponse(serviceUrl);
    if(service==false){
        progressDialog.dispose();
        allDone = false;
        break;
    }
}

if(allDone){
    progressDialog.dispose();
    Dialog.show("SUCCESS","rocess Done","OK",null);
}
else{
    Dialog.show("FAIL","rocess Failed","OK",null)
}

...


public static boolean getServiceResponse(String serviceUrl){
    boolean isSuccess = false;
    ConnectionRequest connectionRequest = new ConnectionRequest() { 
        @Override
        protected void handleErrorResponseCode(int code, String message) {
            this.kill();
            LogUtil.setErrorLog(message,page_name+ " > handleErrorResponseCode");
            isSuccess = false
        }

        @Override
        protected void handleException(Exception err) {
            this.kill();
            LogUtil.setErrorLog(err,page_name + " > handleException");
            isSuccess = false
        }

        @Override
        protected void readResponse(InputStream input)  {
            isSuccess = true
        }
    };

    connectionRequest.setUrl(serviceUrl);
    connectionRequest.setContentType("application/x-www-form-urlencoded");
    connectionRequest.setPost(true);
    connectionRequest.setDuplicateSupported(true);
    connectionRequest.setTimeout(100000);
    NetworkManager.getInstance().addToQueueAndWait(connectionRequest);

    return isSuccess;
}

每当我尝试在整个网络中同步进程时,它都可以正常工作。

但在此过程中,如果网络运行缓慢或丢失,则不会提醒用户注意该问题。相反,它只是停留在进程对话框上。

我在一个文件中添加了错误日志,以便稍后检查问题。但在这种情况下也没有显示任何错误。

任何帮助都会更有意义。



Best Answer-推荐答案


Codename One 中的超时当前仅限于连接超时,不适用于读取超时,因此一旦建立连接,它将持续存在。您可以在 NetworkManager 上使用进度监听器来检测此类情况并终止连接。

关于java - 网络请求超时或网络丢失或网络速度慢在代号中无法正确处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38475063/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap