Если целевой сервер поддерживает это, вы можете использовать заголовок http Range< /а>:
<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 поддерживают это, поэтому для статического контента вам, вероятно, повезет. Динамический контент будет сложнее...
... Я только что попробовал это с CFM, обслуживаемым через Apache, и похоже, что это не сработало. Я подозреваю, что если Apache/IIS обслуживает статический файл, то он может безопасно отправить обратно диапазон байтов из документа, который вы запрашиваете, потому что он может прочитать файл. Если запрос предназначен для чего-то, сгенерированного CF/ASP/JSP/чем-то еще, то приложение должно учитывать заголовок Range: в запросе. В моем случае я все еще получил весь документ, потому что мое приложение не просматривает заголовок Range.
Я также должен упомянуть, что в Java можно делать то, что вам нужно, поскольку у вас есть более тонкий контроль над тем, что происходит, но вам придется написать что-то самостоятельно или использовать одну из альтернативных HTTP-клиентских библиотек. там. Я полагаю, это зависит от того, насколько важна эта функция для вас. Если документы очень большие, вам может понадобиться использовать файловый атрибут cfhttp, чтобы избежать попадания всего ответа в память, что может привести к сбоям.
person
barnyr
schedule
03.08.2012