如果目标服务器支持它,您可以使用Range http 标头:
<cfhttp
method="GET"
url="#url.strURL#"
resolveurl="true"
useragent="#CGI.http_user_agent#"
result="objGet"
timeout="60"
charset="utf-8"/>
<cfhttpparam type="header" name="Range" value="bytes=0-499" />
</cfhttp>
Apache 和 IIS 支持这一点,因此对于静态内容,您可能会很幸运。动态内容会更棘手......
...我刚刚尝试过通过 Apache 提供 CFM 服务,看起来这不起作用。我怀疑如果 Apache/IIS 正在提供静态文件,那么它可以安全地从您请求的文档中发回一系列字节,因为它可以读取该文件。如果请求是针对由 CF/ASP/JSP/whatever 生成的内容,则由应用程序来遵守请求中的 Range: 标头。就我而言,我仍然得到了整个文档,因为我的应用程序没有查看 Range 标题。
我还应该提到,可以在 Java 中做你想做的事情,因为你可以更好地控制正在发生的事情,但你必须自己编写一些东西或使用替代的 HTTP 客户端库之一那里。我想这取决于该功能对您的重要性。如果文档非常大,那么您可能需要使用 cfhttp 的 file 属性来避免将整个响应放入内存,这可能会导致崩溃。