问题标签 [nanohttpd]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - nanoHTTPD - 如何在 Android 中作为单个后台线程运行?
我的应用程序是使用 nanoHTTPD 作为在 Android UI 上按下按钮和键入文本的替代方法,以进行自动化和回归测试我目前有一个主 UI 线程和一个在不同线程中运行的自定义 nanoHTTPD。考虑到每个 HTTP 请求都将在 UI 线程中快速得到服务。如果我可以强制 nanoHTTPD 不为每个传入请求启动新线程,我认为我的模型可以简化。对于我的用例,我完全不介意阻塞 I/O 模型。我看到有一个可插拔的线程策略。是否可以修改以下内容以使一次只有一个 Web 请求处于活动状态(阻塞模型)?
我可能还可以做更复杂的消息队列,但在一个线程中“简化”到 nanoHTTPD 似乎最简单。
java - java android nanohttpd - 将文件从临时存储上传到内部存储的正确方法
此处提出了一个相关问题, 将文件从 nanohttpd 的临时目录上传到 SD 卡
参考提问者要求将 nanohttpd 上传的文件复制到外部 sd 卡。但是,如果我们希望在内部存储中拥有上传文件的副本,我们该怎么做呢?(例如系统根据设备偏好分配是 sdcard 还是内部存储)
问题的作者确实找到了一种从 nanohttpd 服务器复制上传文件的类方法(使用简单的类方法从特定目录复制到特定目录)https://stackoverflow.com/a/4770586/1673000
但是,我们应该如何以及在哪里实施这些代码?(考虑到正确的方法)
- 我们应该将此代码实现到 nanohttpd 源文件中吗?(eg NanoHttpd.java) 如果是这样,我们如何将代码实现到主类文件中。
- 我们是否能够在不修改的情况下保持 nanohttpd.java 源文件的完整性,并将这个特定功能添加到另一个类文件中?(例如,另一个类文件“扩展 NanoHTTPD”并解析了一些示例 HTML 代码)或者就具有干净的设计结构而言,推荐的程序是什么?
旁注:我希望可以在 nanohttpd 操作完成后直接复制文件,但在 nanohttpd 关闭后,临时文件总是会立即被删除。
谢谢阅读
android - 在 WebView 中使用 JwPlayer 播放 Mp4
我在我的应用程序中使用了一个 http 服务器(使用 nanohttpd),它提供一个页面,该页面具有一个使用 JwPlayer 播放视频的视频元素。视频类型为 .mp4。
问题是我无法使用自定义 ROM 在我的三星 Galaxy S3 Mini 中正确再现视频。音频很好,但在视频区域内一切都是黑色的,除了右下角,它显示了部分 web 视图(故障)。我尝试启用硬件加速,但它仍然无法正常工作。
视频在 android chrome 浏览器中正确播放(可通过应用程序的服务器访问),所以可能是 WebView 或 chromium 的配置错误?它在其他一些设备(三星 Galaxy S3)中也能正常播放。
这是我用来设置 WebView 的代码:
播放开始时,设备会记录此错误:
先感谢您。
android - 如何通过 nanoHTTPd 从 Internet 将视频流式传输到 VideoView
我想在下载过程中下载和播放视频文件。由于 VideoView 没有帮助解决这个问题,我决定使用 nanoHTTPd 创建一个伪 HTTP 服务器,并在我自己的服务器内部尝试下载视频文件并在之后播放,但我的问题是:
1-如何将下载的部分刷新到videoview并下载剩余的部分?
以下是我的来源:
android - Android 上大文件和 nanoHTTPD 和 WebView 的错误行为
我在 Android 上使用 nanohttpd 向我的 WebView 提供内容(KitKat 版本中的 ContentProvider 方法被破坏了,非常感谢 GOOGLE !!!),当我尝试发送 MP4 文件作为响应时,我的问题出现了,当第一个请求返回以下作为响应:
当第二个请求到来时,标头如下所示:
现在这里的问题是,据我所知,来自客户端的第二个请求的范围是无效的。为什么我没有收到类似的范围:
在此之后,我收到了第二个请求,但我从未收到范围从 0 开始的“Starter”请求。有人对此行为有线索、评论、修复、路径、解决方法吗?
更多信息 :
第一个请求,页面加载时:
第二个请求,页面仍在加载:
第三次请求,页面仍在加载中,出现 Range 标头:
加载页面后,如果我尝试播放视频,则会收到以下请求。
第一个请求:
第二个请求 :
第三个要求:
第四次(也是最后一次)请求:
在此之后,可以听到音频但不能听到视频,logcat 显示以下错误:
java - 如何使用 NanoHTTPD 显示日志文件
我编写了一个 java 桌面应用程序,它使用嵌入式 NanoHTTPD Web 服务器https://github.com/NanoHttpd/nanohttpd接受 http 请求,在收到 http 请求后,我的桌面应用程序进行了一些活动,并在执行其工作时不断写入日志文本文件,当前客户端打开网页必须等到整个作业完成并发送整个页面并查看日志文件,我希望将日志数据添加到本地日志文件后立即发送给客户端,我知道这是使用 ajax 完成的,但我还没有时间学习它,只是如何使 java 中的某些对象的更新直接反映到网页而不需要发送整个页面。
我找到了这段代码http://www.binpress.com/app/jquery-log-viewer/570但对我不起作用
android - 使用 WebView 和 NanoHTTPD 流式传输大型视频时出现连接重置异常
在我的应用程序中,我压缩了网页内容。Web 内容中嵌入了视频。
我通过 Android 网页视图显示 wen 内容。我通过 NanoHTTPD 服务器提供我的内容。我在 Android 4.2.2 和 NanoHTTPD 的最新版本上
我的服务器通过范围请求支持部分内容处理。此错误出现在初始调用本身中,即当从我的服务器发送接受范围响应时。
作为 ZipInputInflaterStream 的视频是作为响应从我的服务器发送的。
每当我尝试观看大尺寸的视频时,我都会得到这个堆栈跟踪。
NanoHTTPD 中的客户端套接字似乎断开连接。下面是引发此错误的 NanoHTTPD 代码
outputStream.write 抛出上面的堆栈跟踪。
对于这样的大文件,在异常发生后,Android 媒体播放器会发送范围请求。这在我提取文件并通过 FileInputStream 发送内容时有效。
问题是 NanoHTTPD 能够读取 ZipInputInflaterStream 更长的时间吗?即使它读取了为什么客户端套接字被关闭?
请注意,此问题仅发生在 19 MB 等大型视频中。对于像 11 MB 这样的较小文件,它可以工作。
干杯,索拉夫
android - 如何使用 Android 的 VideoView 从本地存储中流式传输和下载媒体?
我必须从服务器流式传输和下载视频文件并将其显示在 VideoView 中,感谢 google,VV 自然不支持我的要求,所以这就是我所做的:
1-使用 NanoHTTPD 创建 HTTP 代理并开始从服务器下载文件
2-启动 VideoView 并将 uri 设置为我的 HTTP 代理
3-inside server() 在我的代理中我开始响应 VideoView 与具有适当响应标头的真实服务器相同(我的意思是内容长度/内容范围与 206 响应)
但是问题从 VideoView 开始,它正确读取了 300kb 的视频文件,然后从 619kb 或其他内容请求。我不知道为什么 VV 想要从 300,000bytes 跳到 619,000bytes ,经过 10 次尝试,它会在 VideoView 的 c++ 代码中以 ERROR -1004 回应我,我找不到任何线索是什么那。
以下是我的完整解决方案。感谢任何帮助,因为我对 VideoView 变得一无所知,这是奇怪的行为!!!
注意:我特意固定了文件的大小,没有错。
android - Android Web 服务器 nanohttpd - 无法从同一设备上的浏览器连接
我尝试使用 nanohttpd 演示应用程序在 Android 上设置一个简单的 Web 服务器,而无需修改。我使用的 Android 设备运行的是 Android 4.0.3。
我可以从其他设备访问 Web 服务器,但无法从运行 Web 服务器的同一 Android 设备上的浏览器(Firefox、Chrome 和本机 Android 浏览器)连接到 Web 服务器。
我尝试了各种地址和端口组合都没有成功(localhost、127.0.0.1、10.0.0.2,实际分配的IP地址,端口8080、8082)。我也尝试过将 nanohttpd 应用程序直接绑定到 127.0.0.1,但也没有成功。我已经验证我可以使用 Android 设备上的终端应用程序“ping”这些地址,所以看起来网络连接很好。
对 Android 是否有限制,会阻止浏览器连接到本地 Web 服务器实例,如果有,是否需要修改配置设置或权限才能使其正常工作?
java - 减少未使用的 Firefox 连接
我通过扩展 NanoHTTPD (1.25) 构建了一个嵌入式 Web 服务器。它用于 Firefox 浏览器在同一台机器上显示其内容。(SuSE 11)
由于 Firefox 需要在很短的时间内(0.2 秒刷新)显示不断变化的内容,因此它会非常快速地轮询 JSON URL。
结果,它创建了许多未使用的连接,有时无法从我的 Web 服务器获得任何响应。
为什么会有这么多 TIME_WAIT 连接?如何使我的 Web 服务器健康并确保我的 Web 服务器的响应?