【发布时间】:2023-03-19 21:59:01
【问题描述】:
我的开发机器上的服务器版本如下:
Apache/2.2.21 (Win32) mod_fcgid/2.3.6
我一直在测试HttpURLConnection,因为我的项目需要简单的流媒体功能。我已经阅读了来自 @BalusC 关于如何使用该类的精彩概要。
Using java.net.URLConnection to fire and handle HTTP requests
我目前遇到的问题是设置setChunkedStreamingMode 时。无论我将它设置为什么,我的流似乎都没有进入服务器,当我的服务器 api 方法/连接被调用/建立时,数据流是空的。但是,如果我删除它,它可以正常工作。
我见过另一个人有类似的问题:
Java/Android HttpURLConnection setChunkedStreamingMode not working with all PHP servers
但没有真正的解决方案。我无法将其设置为 setFixedLengthStreamingMode 仅仅是因为内容 (json) 的长度可变。
这不行。我可能会传输大量数据,因此无法将数据存储在内存中。
我的问题是,我怎样才能让 setChunkedStreamingMode 玩得更好?是服务器设置问题还是可以在代码中修复?
编辑 我现在已经在我的生产服务器上测试了我的代码,它没有问题。但是,我仍然想知道为什么我的本地机器上的 Apache 服务器会失败。任何帮助仍然非常感谢。
【问题讨论】:
-
定义“似乎没有成功”。
-
@EJP 你说得对,这确实是一个糟糕的措辞。事实上,它确实到达了服务器,但是,没有任何数据。与删除
setChunkedStreamingMode相比,我的数据通过了。据我所知,也没有错误。 -
谢谢,现在定义“数据流为空”。怎么衡量的?
-
@EJP 我使用 php 读取输入:
file_get_contents("php://input")据我所知,没有输入。 -
什么版本的 PHP?我发现这个:“5.3.0 之前的 PHP 没有实现分块传输解码”。另外你需要在 php.ini 中有
protocol_version=1.1,默认是 HTTP 1.0。来源here
标签: java android apache httpurlconnection