【问题标题】:TimeoutException on telegram java client电报Java客户端上的TimeoutException
【发布时间】:2018-05-04 21:59:25
【问题描述】:

我在 windows intellij idea 中使用 java telegram api 与 telegram core api 进行通信

https://github.com/ex3ndr/telegram-api


但该应用在
TLConfig config = api.doRpcCall(new TLRequestHelpGetConfig());

完整源代码行中遇到超时错误:

AppInfo appinfo=new AppInfo(45687, "Myapp", "154", "587","en");
    TLRequestAuthCheckPhone checkRequest = new TLRequestAuthCheckPhone("96521452365");


    MyApiStorage state=new MyApiStorage();
    TelegramApi api = new TelegramApi(state, appinfo, new ApiCallback()
    {
        public void onApiDies(TelegramApi api) {
            // When auth key or user authorization dies
        }
        @Override
        public void onUpdatesInvalidated(TelegramApi api) {
            System.out.print("############################### onUpdatesInvalidated");
            // When api engine expects that update sequence might be broken
        }

        @Override
        public void onAuthCancelled(TelegramApi ta) {
            System.out.print("############################### onAuthCancelled");
            throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
        }

        @Override
        public void onUpdate(TLAbsUpdates updates) {
            System.out.print("############################### onUpdate");
            System.out.println("user Id ::::"+((TLUpdateShortMessage) updates).getFromId());

        }
    });
    api.switchToDc(1);
    TLConfig config = api.doRpcCall(new TLRequestHelpGetConfig());
    System.out.print("############################### config" + config.getTestMode());
    state.updateSettings(config);
    api.doRpcCall(checkRequest, new RpcCallbackEx<TLCheckedPhone>() {
        public void onConfirmed() {
            System.out.print("############################### onConfirmed");
        }

        public void onResult(TLCheckedPhone result) {
            boolean invited = result.getPhoneInvited();
            boolean registered = result.getPhoneRegistered();
            System.out.print("############################### onResult" + registered);
            // TODO process response further
        }

        public void onError(int errorCode, String message) {
            System.out.print("############################### onError" + message);
        }
    });



有人可以帮我吗

【问题讨论】:

    标签: java timeout telegram


    【解决方案1】:

    您的超时可能有几个原因:
    1.你正在使用

     api.doRpcCall(new TLRequestHelpGetConfig());

    在 TelegramApi 类中,这会转化为

     return this.doRpcCall(method, timeout, 0);

    0 代表 DC。如果您的 DC 不同,您将超时
    2. 其他地方有人建议改用 doRpcCallSide,它对某些人有效,对其他人无效。原因是它翻译成

     return this.doRpcCall(method, 15000, this.primaryDc, true);

    true 代表 authRequired。
    3.如果您想在未经授权的情况下这样做,请使用

    api.doRpcCallNonAuth

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-07-22
      • 2017-05-10
      • 2016-09-26
      • 1970-01-01
      • 1970-01-01
      • 2019-07-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多