在我的后端应用程序中,我的负载均衡器使用循环来分配流量。因此,我的主机名上有两条A记录:
- x.x.x.x myapp.com
- y.y.y.y myapp.com
在其中任何一个关闭时,它返回503服务不可用。
现在,在我的Android应用程序中,我使用OKHTTP4.x进行网络操作,DNS重新定位缓存在设备上。因此,如果cahced IP宕机,它不会尝试到达其他IP,请求将失败。我尝试了多种方法来让它工作,但直到现在都没有。我尝试过的事情:
OkHttpClient client = new OkHttpClient.Builder().build();
Thread thread = new Thread(new Runnable() {
@Override
public void run() {
try {
List<InetAddress> addr = client.dns().lookup("myapp.com");
for ( InetAddress a : addr ) {
Log.d(TAG, a.toString());
}
} catch (Exception e) {
e.printStackTrace();
}
}
});
thread.start();
我得到日志中的两个条目:
myapp.com/x.x.x.x
myapp.com/y.y.y.y
那么,是否有一种方法可以使OkHttp客户机在失败的情况下尝试其他IP呢?
任何应用程序都不能做到这一点,除非你有权访问你的DNS服务器源,让他选择在哪个ip中发送请求。
如果DNS通过任何方式记录可编辑的位置,例如使用主机文件来确定域指向哪个IP,那么您可以动态更改该文件,并完成工作。但是即使有主机文件,Android OS/iOS也不会让你这么做。
您不能选择将请求发送到特定的ip,除非您知道一种神奇的方法来将域名传递到报头中的请求,尤其是如果它上面有SSL的话。
OkHttp3是否支持以下情况: x.x.x.x myapp.com y.y.y.y myapp.com 无法访问代理服务器。ProxySelector可用于顺序尝试多个代理服务器,最终返回到直接连接。 将此设置为false,以避免在重试请求具有破坏性时重试请求。在这种情况下,调用应用程序应该自己恢复连接故障。
问题内容: 如何在用户类中打开数据库连接,我可以在其中进行数据库操作?以及为什么需要在DBConnection类中定义内置的已创建函数。 我创造了 db.php user.php result.php 在db.php中 在User.php中 在result.php $conn->real_escape_string(trim(strip_tags($_POST[‘username’]))); $e
我有三张桌子;1.学生-id,name 2.主题-sid,sname 3.结果-id,sid,marks(id和sid是上面两个表引用的外键) 现在,我执行 我得到了最高分的科目名称。现在,我还想要获得这些最高分的学生姓名。 所以我尝试添加列 r.id,不起作用。我尝试在此查询中添加表学生。我可能会在添加表格或其他东西后对分组进行恶作剧? 这是我干的 我得到了每个学生的ID,有重复的科目和分数。而
我们对okhttp重试请求有一些问题。根据我们的崩溃报告日志,我们的大多数客户都收到了太多此类异常。 他们抱怨的是,数据上传到服务器,但移动端仍然显示没有上传。我研究了一点,发现okHttp在连接失败时重试请求,猜测这与这个主题有关。我不能在调试应用程序时创建一个案例。我已经尝试连接到10.10.10.1,它得到了套接字超时,但似乎okhttp没有重试这个请求。如果(!StreamAllocati
我是使用节点js(ws库)开发的网页登录服务器 我想将聊天模块添加到android应用程序。我正在为websocket客户端使用okhttp。当从设备连接时,它正在工作。但是当连接第二台设备时,它不工作。只有第一台设备websocket.on(“消息”)事件发射器会做出响应。另一台设备不监听onMessage。只有一台设备监听A. B- 如何配置onMessage在所有设备上工作? java客户端