其他分享
首页 > 其他分享> > Android http keepalive解决方案,但它是永久性的吗?

Android http keepalive解决方案,但它是永久性的吗?

作者:互联网

我有一个搜索按钮,每次按下它都会访问服务器.问题是,如果我连续多次按它,它将正常工作.但是,如果我等待5秒钟,第一次按下将无效.它只是没有收到回应.第二次按下将按下,按下后续按钮,直到我等待一段时间(~5秒)

所以基本上,除非你在5秒内不断寻找新的东西,否则你的第一次按下按钮将不会做任何事情.

这解决了

          System.setProperty("http.keepAlive", "false");

但是,我已经读过,这消除了每次单击该按钮时必须建立新TCP连接的持久连接.这个速度较慢但不是马车.

这是一个错误的解决方案?我已经读到这并没有真正解决任何问题.希望得到一些帮助,谢谢.

解决方法:

你说:

However, if I wait 5 seconds, the first press won’t work. It just doesn’t receive a response.

我认为服务器甚至没有收到您的请求.我认为将http.keepAlive设置为false是一个很好的解决方法.我花了相当多的时间来研究这个问题,这显然是Android库中的一个错误.

原因是服务器不希望保持所有这些连接打开,因为它们可能有很多,所以它会不时地关闭其中一些连接.但是,Android库中使用的连接池不希望接受这个事实并尝试使用旧的封闭连接.

取消设置http.keepAlive是一种解决方法而不是解决方案,但是您确实获得了可靠的HTTP处理,尽管有一些性能成本.

标签:android,httpurlconnection,keep-alive
来源: https://codeday.me/bug/20190521/1147206.html