Android 上的持久 HttpURLConnections

2023-12-24

我在尝试让 Android 应用程序(好吧,服务,它的情况下它有任何区别)使用持久 HTTP 1.1 连接时遇到问题。

以下循环(简化的测试用例)通过桌面 JRE 上的单个 TCP 会话进行工作,但在 Android 设备上会导致整个套接字创建/拆卸循环。

        while (true) {
            URL url;
            try {
                url = new URL("http://10.0.0.125:8080/SRV?");

                URLConnection connection = url.openConnection();

                HttpURLConnection httpConnection = (HttpURLConnection) connection;                  
                int responseCode = httpConnection.getResponseCode();

            } catch (MalformedURLException e) {
            } catch (IOException e) {
            }       
        }

Oracle 的 JDK 描述了一种称为“系统属性”的东西:

http.keepAlive= 默认值:true

http.maxConnections= 默认值:5

Android 运行时中是否有类似的东西阻止维持持久连接?


Android 的 JVM 在底层使用 Apache HTTP 组件库进行 HTTP 连接(甚至是使用 java.net 接口完成的连接):因此其行为与 Oracle JVM 略有不同。

理论上,底层 Harmony 代码尊重http.keepAlive系统属性,但我不确定 Google 的副本是否保留该行为。

如果您想绝对确定发生了什么,则必须使用 HttpComponents 代码。这是漫长而痛苦的,但如果你看看http://hc.apache.org/httpcomponents-client-ga/tutorial/html/connmgmt.html http://hc.apache.org/httpcomponents-client-ga/tutorial/html/connmgmt.html它概述了 http 组件的连接管理方法。请参阅第 2.11 节,其中详细介绍了如何使用 HTTP 组件显式控制连接管理。

祝你好运。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android 上的持久 HttpURLConnections 的相关文章

  • 测试正确的时区处理

    我们正在处理大量数据 所有数据均以 UTC Java 语言 标记 在读取这些数据 将其存储在数据库中以及再次将其取出之间 发生了一些数据在夏令时期间关闭一小时的情况 由于 UTC 没有夏令时的概念 这显然是软件中的一个错误 一旦知道 就很容
  • 使用 Gradle 构建 Kotlin + Java 9 项目

    我对 Gradle 老实说 还有 Java 9 相当陌生 我正在尝试使用 Gradle 构建一个混合了 Java 9 和 Kotlin 的简单库项目 更详细地说 Java中有一个接口 Kotlin中有一个实现 我会用 Kotlin 做所有事
  • @android的含义

    我想问一下是什么意思 android as in android id android id list 我在不同的 android 示例和教程中看到过它 我也用谷歌搜索过它 我发现的唯一解释是 列表和空 ID 是由 Android 平台为我
  • TextView 中缩进项目符号列表

    我有一个 TextView 我用 strings xml 中的字符串资源中的文本填充它 字符串资源包含 元素 用于在 TextView 内创建项目符号列表 我的问题是我想控制项目符号列表中跨越多行的行的缩进 默认情况下 文本不会缩进超过项目
  • 在 Scala 中创建 Java 对象

    我有一个 Java 类 Listings 我在 Java MapReduce 作业中使用它 如下所示 public void map Object key Text value Context context throws IOExcept
  • SpannableString 中的 URLSpan

    我正在使用这个例子SpannableString http developer android com resources samples ApiDemos src com example android apis text Link ht
  • Maven 依赖冲突:org.w3c.dom.ElementTraversal

    我有一个 Java 代码库 它使用 Maven 进行依赖项解析并在 CI 上运行测试 经过最近的一批开发 大到足以很难识别重大更改 我的一些测试现在在通过 Maven 运行时失败了NoClassDefFoundError for org w
  • Android - 有没有办法监听 GPS 是否启用或禁用

    我编写此代码是为了接收位置更新 PendingIntent launchIntent PendingIntent getBroadcast context 5000 intent 0 manager requestLocationUpdat
  • spring-hibernate 花费更多时间的任何原因?

    目前 我正在春季和冬眠期间从事一个项目 我来到这里 获取记录并在 JSP 中显示这些记录需要更多时间 我在各处都保留了时间戳 以查看哪里花费了更多时间 Time HomeController start 2014 07 09 18 58 5
  • 如何修复 java.lang.ClassNotFoundException: org.springframework.boot.configurationprocessor.json.JSONException 错误?

    当我在生产环境中将 Spring Boot 服务作为 Windows 服务运行时 出现以下错误 服务exe的创建者是Jar2exe https www jar2exe com java lang reflect InvocationTarg
  • 在 Exif 中写入 XPKeywords

    我想在 Jpeg 图像中写入 XPKeywords 到目前为止 我正在使用 Sansaleen java api 在 Jpeg 图像中写入 Exif 标签 我能够编写大多数标签 例如主题 评论 作者 评级 但无法编写 Windows XP
  • 选择活动时运行时崩溃

    首先我想说我几乎没有 Android 经验 这是我在 Android 中的第一个项目 而且我的老师不太擅长教学 所以我对任何过度的无知表示歉意 在进一步讨论之前先解释一下 我的应用程序的目标本质上是能够记录您在某些活动上花费了多少时间 记录
  • 我们可以将请求分派到 servlet 内的 HTML

    这可能吗 RequestDispatcher rd request getRequestDispatcher index html rd forward request response 是的 您可以将请求分派到 HTML 页面
  • Android BottomNavigationView 与自定义视图作为图标[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我正在尝试 Android 支持库中的新 BottomNavigationView 对于其中一个菜单项 我希望有一个自定义视图 以便我
  • 找不到满足版本限制的“com.google.code.findbugs:jsr305”版本

    当生成签名的 APK 进行发布时 我收到此错误消息 Cannot find a version of com google code findbugs jsr305 that satisfies the version constraint
  • SQL准备语句如何通过多个可能的菜单选择进行选择?

    所以我有 4 个菜单选择 产品 位置 课程类型和类别 所有这些都可以为空 使用 JSF 编程 但这应该与这个问题无关 因为它是一个 SQL 问题 菜单选择将向托管 bean 发送用户选择的变量 并使用准备好的语句使用用户选择的菜单中的信息
  • 找不到 `activityViewModels()` Hilt Android

    我在我的项目中使用 Hilt 和 MVVM 我想要一个viewModel from activityViewModel在 2 个活动中使用相同的内容 但我的 Android Studio 说未解析的参考 我的应用程序 build gradl
  • Android Studio MediaStore,低于 SDK 29 将图像保存在 SD 卡中失败

    我需要将图像保存在Android 10以下的sd card的图片目录中 我已经实现了范围存储 此代码适用于sdk 29及以上版本 因为MediaStore getExternalVolumeNames是在sdk 29中添加的 sdk 29以
  • 尝试 Catch 性能 Java

    当捕获异常而不是进行检查时 try catch 需要多长时间 以纳秒为单位 假设消息具有用于查找的 HashMap 类型性能 try timestamp message getLongField MessageField TIMESTAMP
  • 如何在android中使用Room Persistence ORM工具实现created_at和updated_at列

    我该如何实施created at and updated at在Android中使用Room Persistence ORM工具的列 可以在创建或更新表中的行时自动更新时间戳 我研究了很多网站 但仍然没有找到任何可以处理的结果middlew

随机推荐

  • 如何找到 JXA 对象上的所有方法?

    我试图列出 JXA 对象的所有方法 我尝试了几种在浏览器中使用 JavaScript 的方法 但没有一个有效 gt gt Object getOwnPropertyNames Application Finder selection 0 g
  • ProgressBar Circle 在 android L (API 21) 上显示没有进度

    我有一个圆形进度条来倒计时 它在 kitkat 和之前的版本上完美运行 但在 android L 上 无论我设置什么进度 它总是显示一个完整的圆圈 Image http youspeakschwaebisch de progressbar
  • 在 XPath 中获取以下兄弟姐妹?

    我正在努力抓住li下面的类文本基于包含某个单词的树中较高的强标记 在本例中为 restaurants p class The location where the condo is situated offers a good choice
  • 使用 dlopen() 加载时解决动态库依赖关系

    我在加载动态库时遇到了问题dlopen 我尝试加载一个库 handle dlopen libmkl intel lp64 so RTLD LAZY 此代码失败并显示以下消息dlerror opt intel composer xe 2013
  • 预填充 WebView 文本字段

    我需要预先填写文本字段UIWebView我明白javascript是解决这个问题的最好方法 不幸的是我一无所知javascript在过去的几个小时里一直在摸索 一无所获 最新的拙劣尝试 void webViewDidFinishLoad U
  • 删除的指针指向什么?

    int a nullptr NULL before C 11 a new int 1 delete a 什么是a指向现在 它是否指向nullptr或者它是否指向被删除之前所指向的地址 其他一些答案错误地表示 该值不会改变 但确实如此 删除前
  • MVVM INotifyPropertyChanged - 线程问题?

    我刚刚开始学习 MVVM 和 WPF 很抱歉提出了愚蠢的问题 我正在使用不同的教程和示例来学习 并且我遇到了这个例子 http www codeproject com Articles 165368 WPF MVVM Quick Start
  • XMLHttpRequest POST 并在新窗口/选项卡中打开目标页面

    如何模拟Form的 POST 行动与target blank in XMLHttpRequest 即发布数据并在新选项卡中打开目标页面 gBrowser开箱即用地提供此功能 var dataStream Cc mozilla org io
  • 在 div 内仅将文本换行两行

    我想将文本包装在特定宽度的 div 内的两行内 如果文本超出两行的长度 那么我想显示省略号 有没有办法使用 CSS 来做到这一点 e g Sample text showing wrapping of text in only two li
  • Angular/Rxjs 管道异步不适用于 ssr?

    我在 SSR 上运行的异步管道有问题 没有错误 只有无限循环 似乎服务器正在等待可观察的结果被解析 我在用 nestjs ng universal 角9 火力基地 Rxjs 像这样的简单案例有效 p observable async p 但
  • Swift2 UI 测试 - 等待元素出现

    我想暂停测试并等待屏幕上出现某个元素 然后再继续 我没有看到一个好的方法来对此产生期望并等待使用 public func waitForExpectationsWithTimeout timeout NSTimeInterval handl
  • 如何在 Flask 路由启动之前运行函数?

    我需要在 Flask 路由开始工作之前执行调用功能 我应该在哪里放置函数以使其在服务启动时调用 我做了 app Flask name def checkIfDBExists it is my function if not DBFullPa
  • 从另一个模块覆盖模块方法

    我想从另一个模块 B 重写模块 A 的方法 该方法将对 A 进行猴子补丁 http codepad org LPMCuszt http codepad org LPMCuszt module A def foo puts A end end
  • Rails update_attributes 不保存?

    有没有替代方案update attributes那不保存记录吗 所以我可以做类似的事情 car Car new make gt GMC other processing car update attributes model gt Sier
  • ReadOnly 和 Enabled 之间的主要区别是什么?

    In Windows 窗体 http en wikipedia org wiki Windows Forms控件有两个属性 ReadOnly and Enabled 这两个属性有什么区别 我觉得他们的行为方式是一样的 正如以下论坛帖子中所说
  • SQL Server 2005 根据另一个表字段值的聚合计算列结果

    抱歉问题标题很长 我想我在这件事上是个失败者 但机会很小 是否可以将一个表中的计算字段的计算作为应用于另一个表中的字段的聚合函数的结果 i e 你有一张名为 mug 的桌子 这个桌子有一个名为 color 的孩子 这让我在英国头疼 但供应商
  • 如何在Flutter中实现应用内购买订阅?

    我想在我的 Flutter 应用程序中为 iOS 和 Android 设备提供自动更新订阅 用户可以订阅 1 个月 目前还没有官方维护的应用内购买插件 但是 Flutter 中有很多关于应用内购买的插件 哪一个是最好的 如何实施 这些安全吗
  • 即使禁用 cookie,document.cookie 在 IE11 上仍然可以访问

    使用 IE11 我可以显示所有 cookie 的内容 写出 cookie 找到它并使用 JavaScript 删除它 即使我将隐私设置为 阻止所有 Cookie 实际上 无论我将 IE 模拟设置为哪个版本 document cookie 仍
  • Javascript 中的 For 循环 (document.getElementById)

    我有一点 JavaScript 问题 而不是使用这个 document getElementById hoverinv1 style display document getElementById hoverinv2 style displ
  • Android 上的持久 HttpURLConnections

    我在尝试让 Android 应用程序 好吧 服务 它的情况下它有任何区别 使用持久 HTTP 1 1 连接时遇到问题 以下循环 简化的测试用例 通过桌面 JRE 上的单个 TCP 会话进行工作 但在 Android 设备上会导致整个套接字创